参考:(19条消息) MySQL数据库删除数据后自增ID不连续的问题_Pre-Star的博客-优快云博客_mysql自增id删除后不连续
关键代码:
SET @auto_id = 0;
UPDATE 表名 SET 自增字段名 = (@auto_id := @auto_id + 1);
ALTER TABLE 表名 AUTO_INCREMENT = 1;
看完操作一下,报了一个错误:
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.
翻译:您正在使用安全更新模式,并且您试图更新一个没有使用KEY列的WHERE的表。在表达式中设置用户变量已弃用,将在未来的版本中删除。考虑其他选项:'SET variable=expression,…',或'SELECT expression(s) INTO variable (s)'。若要禁用安全模式,请在首选项-> SQL编辑器中切换该选项并重新连接。
简单来说,就是数据库处于安全模式下,避免忘记写where条件把数据库数据全部修改。处理办法:
①在MySQL workbeach中将箭头处勾选取消。
②用SQL语句进行操作:
show variables like 'SQL_SAFE_UPDATES';
#查询SQL安全状态。ON为开始,OFF为关闭。
SET SQL_SAFE_UPDATES = 0;
#或
SET SQL_SAFE_UPDATES = false;
#关闭安全状态。
图示:
看一下效果:
①当前t_user表中内容。
②删除id=2的那一行,在重置id的自增信息,顺便添加两行。看最终结果:
解决。