我知道這是Access的限制,但有誰知道一個好的解決方法,可以讓我避免重複記錄在我的表有30個字段的情況下,我不不想要這30個字段的任何重複組合?MS訪問超過10個字段的唯一約束
我基本上是批量加載財務數據,我只想添加記錄,如果某個特定項目ID的某些信息在上次加載後發生了變化。當我運行添加新記錄的追加查詢時,我希望使用約束來阻止插入,但試圖找出另一個解決方案。
我知道這是Access的限制,但有誰知道一個好的解決方法,可以讓我避免重複記錄在我的表有30個字段的情況下,我不不想要這30個字段的任何重複組合?MS訪問超過10個字段的唯一約束
我基本上是批量加載財務數據,我只想添加記錄,如果某個特定項目ID的某些信息在上次加載後發生了變化。當我運行添加新記錄的追加查詢時,我希望使用約束來阻止插入,但試圖找出另一個解決方案。
要只插入非重複的記錄,您需要過濾掉在查詢中的重複者與WHERE NOT EXISTS
子查詢,像這樣:
INSERT INTO tTgt (project_id, field1, ..., field30)
SELECT project_id, field1, ..., field30
FROM tSrc
WHERE NOT EXISTS (
SELECT project_id
FROM tTgt
WHERE tTgt.project_id = tSrc.project_id
AND tTgt.field1 = tSrc.field1
...
AND tTgt.field30 = tSrc.field30
)
子查詢將是相當漫長的,但到底這與索引必須做的工作是一樣的。
項目ID是一個外鍵,因爲項目可以在該表上具有其他屬性的各種組合(主要也是外鍵),因此不是唯一的。但是,它出現在桌面上,數據來自Access登臺表。 – Scott