mariadb 中日期时间的默认值

Toa*_*yen 7 mysql mariadb

我在 mariadb 5.5 中设置了默认的日期时间,例如

CREATE TABLE IF NOT EXISTS test (
    `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
Run Code Online (Sandbox Code Playgroud)

但它显示这个错误

Error 1067: Invalid default value for 'create_time'
Run Code Online (Sandbox Code Playgroud)

如何在 mariadb 中设置默认当前时间值但不使用 TIMESTAMP 类型?

ina*_*lus 1

使用触发器指定它:

create trigger bi_mytable
before insert on mytable 
for each row 
begin
    NEW.create_time = NOW();
end;
Run Code Online (Sandbox Code Playgroud)

而且,由于它是一个“创建”值,请确保没有人更新它:

create trigger bu_mytable
before update on mytable 
for each row 
begin
    NEW.create_time = OLD.create_time;
end;
Run Code Online (Sandbox Code Playgroud)