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

标签 java mysql

我有一个 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/

相关文章:

java - 映射 Servlet 参数

java - 遇到正方形或空或?标记在java中从mysql数据库中检索utf-8字符

php - 当PHP android中的1个条件为真时,如何从服务器获取数据?

mysql - 在这种情况下如何根据执行价格检索数据

java - 无法导入 JFrame 或 Dimension

java - MessageFormat 中的嵌套选择子句?

java - Android:自定义 Parcelable 类在没有抛出异常的情况下使应用程序崩溃

java - 我如何在 weblogic 中使用 log4j2?

php - 用户退出网站时的设置值

Mysql 5.7 在 GENERATED 列中使用 IF THEN 或 CASE WHEN