[英]How to synchronize custom ID column with table's primary key column
首先,很抱歉描述性太強。 我通過創建自定義ID字段“ PatientID”將患者的信息存儲在sql db中,並且我有一個主鍵字段“ ID”。 PatientID具有模式“ PID-1”或“ PID-2”,依此類推。 我要同步兩個ID。 就像表的“ John”的ID為4一樣,則其PatientID也應為“ PID-4”。 為此,我做了一些編碼,例如如果不存在任何記錄,然后開始從“ PID-1”保存PatientID,然后對於所有下一條記錄,首先從ID字段中找到患者的最大id,並將其增加1,然后將其與“ PID連接“ +(tableID + 1)。
ID PatientID
1 PID-1
2 PID-2
3 PID-3
4 PID-4
現在,對於一個實例,雖然添加了更多記錄,但記錄未保存但ID卻增加了,但會引發異常。 問題來了。 假設出現了一些錯誤,並且ID 5的記錄無法保存到數據庫中,當該錯誤在程序正確運行時修復后,將ID 6而不是5放置了。對於PatientID,由於MAX查詢而將其放置“ PID-5” 。 從這里開始,兩個ID開始是不同的。 對於刪除同樣的問題,如果我要從上表中刪除最后一條記錄,即4和PID-4,則下一條記錄的ID將為5,而PatientID將為“ PID-4”。 這是從我這邊處理兩個ID的整個問題。 我們將對任何其他解決方案或我的想法進行任何修改,或者對我的想法進行任何修改。
在SQL Server中,您可以為此創建一個計算列:
ALTER TABLE Patient DROP COLUMN PatientID;
GO
ALTER TABLE Patient ADD COLUMN PatientID AS ('PID-'+CAST(ID AS VARCHAR(15));
有關計算列的更多信息,請在此處查看 。
注意 :我假設您表的名稱為Patient
。 如果這不是表名,則必須相應地進行更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.