如何查询一个表ID的最大自增值(及如何重置)+Out of range value for column 'log_ID' 啥原因?+AUTO_INCREMENT 是表的最大ID 还是最大ID+1

zblog1年前zblog问题解答60


1、Out of range value for column 'log_ID'  啥原因


错误 "Out of range value for column 'log_ID'" 通常发生在尝试向 MySQL 表的 log_ID 列插入一个超出该列数据类型范围的值时。log_ID 列可能是一个整数类型(如 INTTINYINTSMALLINTMEDIUMINTBIGINT),并且你尝试插入的值超过了该整数类型的最大值。



2、如何查询一个表ID的最大自增值

SELECT AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'your_database_name数据库名字'
  AND TABLE_NAME = 'your_table_name表名字';


如 

image.pngimage.png


重置自增值

-- 首先找到当前的最大log_ID+1 (无数据则默认0+1)(虽然你已经删除了所有行,但出于安全考虑还是检查一下)
SELECT IFNULL(MAX(log_ID), 0) + 1 FROM your_table_name;
 
1-- 假设上面的查询返回了 NULL(因为没有行),或者你想要从某个特定的值开始
 -- 你可以使用以下命令来重置自增值
 ALTER TABLE your_table_name AUTO_INCREMENT = 1;  -- 或者设置为其他值,如上面查询结果加1

2 假设返回了最大值MAX(log_ID) 比如值是  23422 (应该小于  2147483648 否则越界了int(11)32位mysql有符号越界了)
  
   -- 你可以使用以下命令来重置自增值MAX(log_ID)+1 = 23422  +1 = 23423
   ALTER TABLE your_table_name AUTO_INCREMENT = 23423;


3、AUTO_INCREMENT 是表的最大ID 还是最大ID+1

AUTO_INCREMENT 在 MySQL 中并不代表表当前的最大 ID,而是代表下一个将要被插入行的自动递增 ID 值。一般来说(最大值无删除情况),AUTO_INCREMENT 的值是当前最大 ID 加 1。 

当你在一个表中定义了一个列为 AUTO_INCREMENT,MySQL 会为这个表维护一个计数器,该计数器用于生成下一个要插入行的唯一标识符。每次插入新行时,MySQL 会自动将该计数器的当前值赋给 AUTO_INCREMENT 列,然后将计数器递增。

因此,如果你查询 AUTO_INCREMENT 的当前值(通常通过查询 information_schema.TABLES 表中的 AUTO_INCREMENT 列来获取),你将得到下一个将要被插入的行的 ID 值,而不是当前表中的最大 ID 值。

举个例子,假设你有一个表 users,其中 id 列被定义为 AUTO_INCREMENT。如果当前表中最大的 id 值是 10,那么 AUTO_INCREMENT 的当前值将是 11(假设没有其他会话在插入新行)。如果你现在插入一个新行,不指定 id 列的值,MySQL 将自动为该行分配 id 值 11,并将 AUTO_INCREMENT 的值递增到 12。

需要注意的是,即使你删除了表中的所有行,AUTO_INCREMENT 的值也不会自动重置。如果你想要重置它,你需要使用 ALTER TABLE 语句来手动设置一个新的起始值。但是,在重置之前,请确保你了解这样做的后果,特别是如果表中已经有数据或可能有并发插入操作的话。


相关文章

zblog插入连接提示404的问题报错

zblog插入连接提示404的问题报错

zblog插入连接提示404的问题和解决办法。在第一篇文章《欢迎来到ZBlog插件网!》,我提到“插入连接,提示报错了,link.php页面404,于是我想,也需要记录一些错误及处理办法的栏目,发现问...

php判断变量是否存在,isset() 函数

在 PHP 中,判断变量是否存在通常使用 isset() 函数。如果你想要检查一个变量是  存在 或 为空 null ,使用 isset(),变量是否被设置。下...

【此方案收费】阿里云服务器同账号的文件互传 -私网互传-【VPC对等连接】私网ip互通【阿里云套路收费!闭坑!】

【此方案收费】阿里云服务器同账号的文件互传 -私网互传-【VPC对等连接】私网ip互通【阿里云套路收费!闭坑!】

同一个阿里云账号 怎么用私网传输?【VPC对等连接】!跨地域私网确定收费!! 这个就是收费项目哦哦哦对等连接可以在两台 阿里云服务器使用 私网传输,但流量有限制。CDT 赠送200 GB/月公网流量,...

只需三步,玩转火爆全球的DeepSeek

只需三步,玩转火爆全球的DeepSeek

——小白也能轻松上手的百度千帆大模型平台指南近期,国内大模型领域迎来了一颗“新星”——DeepSeek系列模型!百度智能云千帆平台已正式上线满血版本的DeepSeek-R1和DeepSeek-V3模型...

宝塔面板保持终端持续运行的解决方案(Screen全屏窗口管理器)

Screen是一个全屏窗口管理器命令在Linux终端中管理会话时,screen是一个非常有用的工具。它允许你在单个终端会话中创建多个虚拟终端,从而可以同时运行多个任务,即使在断开与服务器的连接后也可以...

查询文章最大ID(无默认0)

# 查询正式文章最小ID (无文章默认为0) $max_id = $zbp->db->Query(    &nbs...