我有一个 devicedetails 表,其 ID d_deviceId 为自动递增。如果我删除第一个 ID(即 0),我需要将下一个条目插入 ID 值 0。
我如何在 MySQL 中实现它。
如果我删除任何其他 ID(例如 5),我将使用以下查询:
SELECT d_deviceId + 1 FROM devicedetails d1 WHERE NOT EXISTS
(SELECT 1 FROM devicedetails d2 WHERE d2.d_deviceId = d1.d_deviceId + 1) limit 0,1
由此我得到除初始 ID 之外的下一个可重用 ID。
有人推荐一种方法吗?
最佳答案
停止使用该查询;它会在高并发下给你不正确的结果。请改用 d_deviceId
列上的 AUTO_INCREMENT
属性 - 每次插入行时,它都会自动将下一个未使用的值分配给该列。
这将要求将 d_deviceId
配置为表的主键。但情况可能已经如此。
http://dev.mysql.com/doc/refman/5.5/en/example-auto-increment.html
关于java - 检查表的初始ID(0)是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11980628/