我打算将我们的生产数据库从mysql 5.5升级到mysql 5.7。
在使用mysql 5.7上的默认sql_mode进行测试时,我们收到零值时间戳的错误,尤其是在创建表时。
https://dev.mysql.com/doc/refman/5.7/en/faqs-sql-modes.html#faq-mysql-what-default-mode
所以我将默认的sql_mode更改为: “NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
现在创建表时的错误消失了。也没有其他查询抛出任何错误,目前所有查询都正常。
抛出错误的sql_query是:
创建表xxxxx(
- > yy_id
int(11)unsigned NOT NULL默认为'0',
- > url_position
int(11)unsigned NOT NULL默认为'0',
- > total_date
日期NOT NULL默认'0000-00-00',
- > terminal_cd
tinyint(4)unsigned NOT NULL默认为'99',
- > click_num
int(11)unsigned NOT NULL默认为'0',
- > time_stamp
时间戳NOT NULL,
- > PRIMARY KEY(yy_id
,url_position
,total_date
,terminal_cd
)
- > )ENGINE = InnoDB
- > ;
是否可以更改mysql默认的sql_mode以使其与mysql 5.5兼容并且有哪些风险因素?