Mysql:Invalid ON UPDATE clause for 'createTime' column

从高版本的mysql转储SQL文件,然后运行SQL文件到低版本的mysql:

如果表中存在datetime字段,如下:

运行SQL文件时,将出现如下错误:

[Err] 1294 - Invalid ON UPDATE clause for 'createTime' column

解决办法:将`createTime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,语句中的ON UPDATE CURRENT_TIMESTAMP去掉即可。

原因:高版本的mysql转储的sql文件中,datetime字段都如上图所示,但是低版本的mysql不认识ON UPDATE CURRENT_TIMESTAMP,所以报错。

举一反三:

1:如果低版本的mysql转储的sql文件,在高版本的mysql中运行是没有问题的。

2:承接1,高版本的mysql再转储出来的sql文件中,datetime字段也是不带ON UPDATE CURRENT_TIMESTAMP的(即在低版本的MySQL中运行是没问题的)。

3:承接1,如果在高版本的mysql中增加了datetime字段,则再转储出来的sql文件中,datetime字段是带ON UPDATE CURRENT_TIMESTAMP的(即在低版本的MySQL中运行是有问题的)。

原文地址:https://www.cnblogs.com/hzcya1995/p/13302496.html