默认值必须是常量;为什么?

时间:2011-07-16 22:11:06

标签: mysql sql default-constraint

in this

  

默认值必须是常量;它不能是一个功能或一个   表达

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

3 个答案:

答案 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列上使用,但它足够有用。