MySQL日期时间DEFAULT CURRENT_TIMESTAMP错误

当我在Windows上运行此MYSQL语法时,它正常运行:

CREATE TABLE New

(

id bigint NOT NULL AUTO_INCREMENT,

timeUp datetime DEFAULT CURRENT_TIMESTAMP,

PRIMARY KEY (id)

)

但是,当我尝试在Linux上运行此代码时,出现错误:

 #1067 - Invalid default value for 'time'

在Windows上,大小写不敏感。New并且new都被认为是相同的。但是在linux上,情况是敏感的。

Linux的配置:

MySQL 5.5.33,phpMyAdmin:4.0.5,PHP:5.2.17

Windows的配置:

MySql:5.6.11,phpMyAdmin:4.0.4.1,PHP:5.5.0

有什么办法可以使它们在两个系统中通用?还是其他替代方法?

回答:

在MySQL 5.6中添加了 对 (数据类型)的支持。

在5.5和更早版本中,这仅适用于 (数据类型)列。

可以使用 5.5中的触发器为列分配默认值。

 DELIMITER $$

CREATE TRIGGER ...

BEFORE INSERT ON mytable

FOR EACH ROW

BEGIN

IF NEW.mycol IS NULL THEN

SET NEW.mycol = NOW();

END IF;

END$$


区分大小写(针对存储在列中的值的查询)是由于 该列所使用的。结尾的排序规则 不区分大小写。例如

,不区分大小写,但是 区分大小写。

来自的输出

将显示字符类型列的字符集和排序规则。在每个列级别指定。当新列定义未指定字符集时,在表级别指定的“默认”适用于添加到表中的新列。

回答:

Kaii指出,我对“区分大小写”的回答涉及存储在列中的值,并且查询是否将从包含的值的列中"New"返回值将返回谓词like "t.col =

'new'"

请参见Kaii关于 (例如表名)在Windows上与Linux上的处理方式不同(默认情况下)的答案。

以上是 MySQL日期时间DEFAULT CURRENT_TIMESTAMP错误 的全部内容, 来源链接: utcz.com/qa/434125.html

回到顶部