簡體   English   中英

如何將自定義ID列與表的主鍵列同步

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM