我正在使用:
'time' type(datetime) defult value(CURRENT_TIMESTAMP)
但它不起作用,它显示以下错误:
Invalid default value for 'Date'
请有人帮帮我吗?
答案 0 :(得分:1)
如果您运行的是MySQL 5.6.5或更高版本
在CREATE TABLE中,您可以声明如下列:
`mydtcol` DATETIME DEFAULT CURRENT_TIMESTAMP
在5.6之前,不可能将CURRENT_TIMESTAMP用于DATETIME列。可以使用表中的第一个TIMESTAMP列。
`mytscol` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
如果您要求该列为DATETIME数据类型,并且您需要在插入行时初始化的列的值,则可以在INSERT语句中为该列提供值,例如
INSERT INTO mytable (...,mycol,...) VALUES (...,'2016-04-21 23:55:55',...)
或者,您可以使用BEFORE INSERT触发器为列指定值。
DELIMITER $$
CREATE TRIGGER mytable_bi
BEFORE INSERT ON mytable
FOR EACH ROW
BEGIN
IF new.mydtcol IS NULL THEN
SET new.mydtcol = NOW();
END IF;
END$$
DELIMITER ;