你能告诉我为什么吗?为什么我们必须给出恒定的默认值?默认值必须是常量;它不能是一个功能或一个 表达
答案 0 :(得分:4)
这是MySQL的一个限制 您可以使用其他RDBMS或解决问题using a trigger。
CREATE TRIGGER yourtable_insert BEFORE INSERT ON `yourtable`
FOR EACH ROW SET NEW.youraddedcolumn = NOW(), NEW.yourupdatedcolumn = NOW();
答案 1 :(得分:1)
我能想到的一个原因是含糊不清。是否应该在将表达式作为默认值或每个INSERT存储之前对其进行评估?
答案 2 :(得分:0)
请注意,您可以在表定义中使用一个非常量值:
stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
这只能在TIMESTAMP
列上使用,但它足够有用。