我有一大串數據,我想插入到數據庫中。 數組中的每個元素都表示數據庫中行的另一個數組。 對於每個元素,我創建一個ActiveRecord
實例。 可以有多達10K(以及更多)的元素,我通過cron
將它們插入到數據庫中。在每次插入之前,我的ActiveRecord會運行驗證並進行一些選擇。MySQL創建多餘的重複行
但有時我會在數據庫中得到重複項。爲了簡化,我的下一個數據數組:
Field1 Field2 Field3
field1Value1 field2Value1 field3Value1
field1Value2 field2Value2 field3Value2
field1Value3 field2Value3 field3Value3
field1Value4 field2Value4 field3Value4
而且在我的數據庫,我可以得到這樣的:
id Field1 Field2 Field3 time
1 field1Value1 field2Value1 field3Value1 2013-11-11 17:17:40
2 field1Value2 field2Value2 field3Value2 2013-11-11 17:17:40
3 field1Value4 field2Value4 field3Value4 2013-11-11 17:17:40
4 field1Value2 field2Value2 field3Value2 2013-11-11 17:17:40
5 field1Value3 field2Value3 field3Value3 2013-11-11 17:17:40
在這種情況下與value 2
行插入兩次。還要注意與value 4
這一行緊接在value 2
之後插入的行。
問題是這些情況是偶然的,我在這裏找不到模式。我嘗試使用交易,但它沒有解決問題。
在我的PHP代碼中,我只是創建一個新的ActiveRecord實例的循環。沒有辦法讓一行插入兩次。所以這個問題必須在MySQL中。
提供代碼。這沒用。 – Havenard
這很可能是您的代碼中存在問題。無法看到第012行代碼 – Paolo
我無法提供代碼。它包含在許多班,每班有近千行。 我只是想知道這個問題是否可能是由MySQL引起的(可能是錯誤的配置)。如果沒有辦法,我會仔細檢查我的代碼。 – serg66