Muvix
Muvix

Reputation: 43

MySQL default value using another column

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

Answers (1)

Paul Campbell
Paul Campbell

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

Related Questions