1

在这

默认值必须是常量;它不能是函数或表达式

你能告诉我为什么吗 ?为什么我们必须给定默认值?

4

3 回答 3

4

这是 MySQL 的限制。
您可以使用另一个 RDBMS 或使用触发器解决问题。

CREATE TRIGGER yourtable_insert BEFORE INSERT ON `yourtable`
    FOR EACH ROW SET NEW.youraddedcolumn = NOW(), NEW.yourupdatedcolumn = NOW();
于 2011-07-16T22:22:21.893 回答
1

我能想到的一个原因是模棱两可。是否应该在将表达式存储为默认值或每个 INSERT 之前评估表达式?

于 2011-07-16T22:34:27.883 回答
0

请注意,您可以在表定义中使用一个非常量值:

stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP

这只能在TIMESTAMP列上使用,但它足够有用。

于 2011-07-16T23:24:39.570 回答