我有一个表设备详细信息,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。
有人建议吗?
答案 0 :(得分:3)
停止使用该查询;它会在高并发性下给你不正确的结果。使用AUTO_INCREMENT
列上的d_deviceId
属性 - 每次插入行时,它都会自动将下一个未使用的值分配给列。
这将要求d_deviceId
被配置为表的主键。但那可能就是这种情况。
http://dev.mysql.com/doc/refman/5.5/en/example-auto-increment.html