是否可以确定SQLite数据库

时间:2016-02-22 23:21:02

标签: database sqlite

我在SQLite中有一个名为UserAccessLevels的表,主键的列名是No。缺少主键0,1,3,4中主键的序列2。是否可以通过在SQLite数据库中运行任何查询来找到此不规则主键2

1 个答案:

答案 0 :(得分:2)

可以使用correlated subquery来检查是否存在相应的下一行(使用最后一行的特殊情况):

SELECT No + 1
FROM UserAccessLevels
WHERE NOT EXISTS (SELECT 1
                  FROM UserAccessLevels AS T2
                  WHERE T2.No = UserAccessLevels.No + 1)
  AND No != (SELECT MAX(No)
             FROM UserAccessLevels);

(如果间隙大于1,则仅返回间隙的开始。)