mysql - 有没有办法告诉 MySQL 在 auto_increment 字段溢出时不要抛出?
问题描述
从这个问题来看,当 auto_increment 字段溢出时,MySQL 会抛出异常。但是,就我而言,我想自动清除旧数据。有什么方法可以告诉 MySQL 在字段溢出时不要抛出?我已经在 auto_increment 字段上声明了一个 PK。
解决方案
即使您清除旧记录,自动增量也永远不会回收旧的 id 值。它只会增加。即使您尝试将自动增量设置回开始:
ALTER TABLE mytable AUTO_INCREMENT=1;
您将看到SHOW CREATE TABLE mytable
它是否忽略了将值设置为 1 的请求,并将其增加到 MAX(id)+1。
除非您使用 完全清空表,否则您TRUNCATE TABLE
无法从清除旧记录中受益。
BIGINT
如果您担心值用完,只需使用 a INT
。
推荐阅读
- python - 仅使用 python 请求打开 URL 然后继续下载文件
- php - 选择过去 60 天内未购买的客户 - php
- ios - 快速缩放时标记相对于地图移动
- node.js - 存根带有回调的函数,不返回承诺
- apache-spark - 如何加快保存只有一个分区的分区数据?
- mysql - 如何在同一个查询中使用and-or命名spring数据中的方法
- sql-server - 如何显示记录的所有天数
- collections - Magento2 在 collection->setOrder 中添加自定义值
- tags - CI/CD 的 Liquibase 回滚策略
- javascript - 使用formData在IE 11中上传文件时服务器无法保存文件