mysql5.7 AUTO_INCREMENT 问题

SELECT @@global.sql_mode, @@session.sql_mode;
SET SESSION sql_mode=CONCAT(@@sql_mode,',NO_AUTO_VALUE_ON_ZERO');

NO_AUTO_VALUE_ON_ZERO 影响AUTO_INCREMENT 列的处理。NULL通常,您通过插入或 来为该列生成下一个序列号0。 NO_AUTO_VALUE_ON_ZERO 抑制此行为,0以便仅NULL生成下一个序列号。

0如果已存储在表的AUTO_INCREMENT 列中, 则此模式会很有用。(0顺便说一句,不推荐存储。)例如,如果您使用mysqldump转储表然后重新加载它,MySQL 通常会在遇到0值时生成新的序列号,从而导致表的内容与原来的不同那被丢弃了。NO_AUTO_VALUE_ON_ZERO 在重新加载转储文件之前启用 可解决此问题。为此,mysqldump自动在其输出中包含一条启用 NO_AUTO_VALUE_ON_ZERO.

posted @ 2025-10-14 15:00  萱乐庆foreverlove  阅读(2)  评论(0)    收藏  举报