有没有办法确定一个表(可能是一个非常大的表)是否具有连续/连续的自动递增主键 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/