我在我工廠的一臺機器上運行的應用程序出現問題(我的意思是我工作的地方)。SQL命令插入不存在的地方允許將2個相同的記錄存儲在數據庫中
無論如何,該應用程序創建了唯一的編號,這些編號與被加載到的唯一編號綁定。因此,他們應該始終是唯一的數字。
現在在報告文件中看到2個箱號與其中的組件相同。這意味着將2個數字加載到生成報告的數據庫表中。
現在編碼部分 應用程序的程序員想要通過使用
從數據庫SELECT DISTINCT SQL命令
生成文件來解決這個問題,以便它僅會寫的一個版本雙註冊號碼。 (這是因爲我們不知道數字是如何放入數據庫的兩次)我不想要這個解決方案,因爲它只處理一個已知的症狀而不是原因。可能還有其他我們不知道的效果。
我都建議他們用
INSERT WHERE NOT EXISTS SQL命令
,使得同一項目不能被註冊。
現在他們回到我身邊,說這種情況已經存在....?我不明白這可能嗎?
我能想到的唯一情況是它不僅僅是數字的字段,而是它們執行INSERT WHERE NOT EXISTS的字段的組合。
命令可能以另一種方式失敗嗎?我無法訪問代碼,所以我不能舉一個例子,但我的問題是一個具體問題。我不想受他們的牽連,所以這就是我問你們的原因。
你正在使用哪些DBMS? Postgres的?甲骨文?你爲什麼不創建一個唯一的索引並永久防止重複? – 2015-03-31 16:13:23
,因爲這個重複的數據已經被插入,或許程序員意味着他們只是選擇使用不同的。當然,如果發生這種情況,很可能會再次發生,在這種情況下,他們需要按照您的建議修改代碼。 – JamesMarc 2015-03-31 16:15:03
嗨,大家好,我認爲我們可以刪除現有的數據庫條目,因爲它們在進入報告文件後首次使用,因此我會建議您這樣做。數據庫是mssql 2008 – DavyGravy 2015-03-31 17:07:49