我在mariadb 5.5中设置了datetime的默认值,例如
CREATE TABLE IF NOT EXISTS test (
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
但它显示此错误
Error 1067: Invalid default value for 'create_time'
如何在mariadb中设置默认当前时间值但不使用TIMESTAMP类型?
答案 0 :(得分:0)
使用触发器指定它:
create trigger bi_mytable
before insert on mytable
for each row
begin
NEW.create_time = NOW();
end;
而且,由于它是“创建”值,因此请确保没有人更新它:
create trigger bu_mytable
before update on mytable
for each row
begin
NEW.create_time = OLD.create_time;
end;
答案 1 :(得分:0)
在5.5中,您不能使用CURRENT_TIMESTAMP
作为DATETIME
列的默认值。后来在10.0.1中引入了此功能,以使其可能使用。
您的选择是升级到较新版本,还是使用触发器(as was explained by inanutshellus)进行仿真。
答案 2 :(得分:-3)
我认为最适合您的解决方案:如果您需要稳定性,请使用MySQL 5.6,否则请使用MariaDB 10。