我正在查看我的數據庫,我想知道我的表中缺少了多少個主鍵。現在有時我只有一個主鍵是整數,這很容易, 我看着這個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。