在这说
默认值必须是常量;它不能是函数或表达式
你能告诉我为什么吗 ?为什么我们必须给定默认值?
这是 MySQL 的限制。
您可以使用另一个 RDBMS 或使用触发器解决问题。
CREATE TRIGGER yourtable_insert BEFORE INSERT ON `yourtable`
FOR EACH ROW SET NEW.youraddedcolumn = NOW(), NEW.yourupdatedcolumn = NOW();
我能想到的一个原因是模棱两可。是否应该在将表达式存储为默认值或每个 INSERT 之前评估表达式?
请注意,您可以在表定义中使用一个非常量值:
stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
这只能在TIMESTAMP
列上使用,但它足够有用。