1

我有一个表 devicedetails,ID 为 d_deviceId 作为自动增量。如果我删除第一个 ID(ie, 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。

有人建议一种方法吗?

4

1 回答 1

3

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

这将要求将d_deviceId其配置为表的主键。但这可能已经是这种情况了。

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

于 2012-08-16T04:18:33.450 回答