Reputation: 43
I have a table
-------------
| id | date |
-------------
Now i need to add column "week", so is it possible to add column like
alter table `a` add column `week` INT(6) not null default DATE_FORMAT(`date`, '%Y%v')
?
Upvotes: 1
Views: 2394
Reputation: 1986
The comment above about using a trigger, is the way to go on this but doesn't elaborate on why you can't do it. So, from the documentation ...
The DEFAULT value clause in a data type specification indicates a default value for a column. With one exception, the default value must be a constant; it cannot be a function or an expression. This means, for example, that you cannot set the default for a date column to be the value of a function such as NOW() or CURRENT_DATE. The exception is that you can specify CURRENT_TIMESTAMP as the default for TIMESTAMP and DATETIME columns.
Upvotes: 2