php - 确定表是否具有连续的主 ID 自动增量值

标签 php mysql sql

有没有办法确定一个表(可能是一个非常大的表)是否具有连续/连续的自动递增主键 ID?是否有 SQL 查询方法来确定这一点?假设有人从一个非常大的表中随机删除了一些行。我需要知道这已经发生了。

e.g. 
table XYZ
id
1
2
3
4

table abc
1
2
4 <--- non contiguous, skipped 3
5

对数据完整性感到好奇。我想要一种 SQL 查询方法,以便让事情变得简单,而不必编写 PHP 脚本来针对数据库运行。

最佳答案

您可以比较这两个值:

SELECT (MAX(ID) - MIN(ID)) + 1, -- e.g. ID 2 - ID 1 = 1 (+1) = 2 rows
       COUNT(ID)
FROM Table

如果表仍然是连续的,它们将是相同的。

关于php - 确定表是否具有连续的主 ID 自动增量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7206547/

相关文章:

php - 如何在我的网站上显示来自 Facebook 的个人资料?

mysql - 我应该选择什么数据类型?

php - 多个条件用php替换mysql记录

sql - ON DELETE SET NULL 自引用关系

mysql - 如何将示例数据表拆分为BCNF/4NF?

php mysql 表中没有的唯一随机数 - 检查然后生成

php - Symfony 2 : Swiftmailer not sending, 没有错误

php - Paypal 使用 PHP cURL 获取访问 token

php - 使用 php 在 SQL 中选择随机行,其中 Status = 0

mysql - 如何从mysql表中获取最后一个列名?