检查表的初始ID(0)是否为空

时间:2012-08-16 04:15:47

标签: java mysql

我有一个表设备详细信息,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。

有人建议吗?

1 个答案:

答案 0 :(得分:3)

停止使用该查询;它会在高并发性下给你不正确的结果。使用AUTO_INCREMENT列上的d_deviceId属性 - 每次插入行时,它都会自动将下一个未使用的值分配给列。

这将要求d_deviceId被配置为表的主键。但那可能就是这种情况。

http://dev.mysql.com/doc/refman/5.5/en/example-auto-increment.html