0

我计划将我们的生产数据库从 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 是:

CREATE TABLE xxxxx ( -> yy_id int(11) unsigned NOT NULL default '0' , -> url_position int(11) unsigned NOT NULL default '0' , -> total_date date NOT NULL default '‎‎0000-00-00', -> terminal_cd tinyint(4) unsigned NOT NULL default '99' , -> click_num int(11) unsigned NOT NULL default '0' , -> time_stamp timestamp NOT NULL , -> PRIMARY KEY ( yy_id, url_position, total_date, terminal_cd) -> ) ENGINE=InnoDB -> ;

是否可以更改 mysql 默认 sql_mode 以使其与 mysql 5.5 兼容,风险因素是什么?

4

0 回答 0