我正在查看我的数据库,我想知道我的表中缺少了多少个主键。现在有时我只有一个主键是整数,这很容易, 我看着这个SQL: find missing IDs in a table,但它是数字列。查找丢失的varchar主键
我从SO本身得到了下面的解决方案,它有助于防止PK是整数。 选择只有PK到我通过它awk的一个文件来寻找下一个丢失的序列
gawk '$1!=p+1{print p+1}{p=$1}'
现在我的问题围绕的VARCHAR主键周围。像一个订单参考号也许不是一个顺序递增的整数,而是一个字符串/ varchar /字母数字列已经有人试过了。 (像A123Z43这样的值),整数/数字很容易,我加1,然后得到下一个序列。
我不确定,但它只是打击了我,一个密钥的散列和下一个有什么关系。我会看看我是否可以尝试。
这将变得更加复杂,如果我有两列作为主键一个是数字,另一个是varchar。
我现在正在使用SQL Server和Postgres。