当我要将数据库移动到新服务器时,出现此错误。
SQL:#1067-“ jailtime”的默认值无效
入狱时间:日期时间,当前时间戳。
任何想法我该如何解决?我记得我创建了一个SQL,如果修改了pJailed行,Jailtime行得到了Current_Timetsamp。
服务器5.5.49-Remi的MySQL Community Server(GPL) phpmyadmin:4.0.10.20
我可以在plus中提供任何详细信息来帮助您吗?谢谢。
稍后编辑:我阅读了多个有关相关的stackoverflow问题,找到了类似NO_ZERO_DATE的答案,但是当我尝试查找
时show variables like 'sql_mode' ;
我没有sql模式"NO_ZERO_IN_DATE,NO_ZERO_DATE
甚至尝试过
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
我的触发器
CREATE TRIGGER `logsupdate` BEFORE UPDATE ON `users` FOR EACH ROW begin if new.pJailed <> old.pJailed then set new.jailtime = now(); end if; if new.pVIP <> old.pVIP then set new.viplog = now(); end if; if new.pAdminLevel <> old.pAdminLevel then set new.adminlog = now(); end if; if new.pPoints <> old.pPoints then set new.TM4 = now(); end if; end
答案 0 :(得分:0)
解决此问题,如果有人有相同的错误。
代替Current_Timestamp,将其定义为NULL :)它将起作用。并使用NOW();功能仍然会发布时间戳。
答案 1 :(得分:0)
在create语句之前,只需像这样设置sql模式:
SET sql_mode = '';
在旧版本的MySQL(MariaDB)中,默认情况下允许使用零日期,但现在不允许。