2010-09-20 57 views
0

我們正在通過SOAP將Magento產品導入到CakePHP環境中。我們有3.000個產品,當然我們希望保持數據庫清理重複的entrys。CakePHP超過3.000個事務。怎麼樣?

我們使用InnoDB作爲CakePHP中的產品數據庫。

我們有不同的方法:

  1. 我們設下的產品型號驗證var和想要的產品ID是唯一的。問題:交易限於迂迴2.000。由於驗證的唯一規則需要每個產品的SELECT語句,因爲事務是「消耗」的,所以不會發生任何事情。
  2. 在數據庫本身中設置唯一的product-id。看起來不錯,唯一的問題是,在第一次導入後,它總是拋出一個「重複項」 - 警告(這是正確的),並且不會繼續。 我發現沒有辦法如何使用「忽略」該查詢。

任何想法?

回答

0

由於問題與SQL相關,並且是導入,所以我會手動構建查詢。也許寫出到tmp /目錄中的文件。所有這些插入可以構成1個事務。通過這種方式,您可以將重複鍵忽略添加到查詢中。

就其性質而言,CakePHP運行了許多查詢,並且由於您對事務的限制,我不會去蛋糕。

當然,你可以深入研究蛋糕,弄清它的innodb類是如何工作的,看看是否有辦法將查詢包裝到事務中。

+0

那麼,沒有解決方案的「蛋糕路」? – Tim 2010-09-22 14:26:34

+0

似乎沒有辦法以另一種方式做到這一點。所以,感謝您的回答,我會接受它,因爲看起來沒有更好的方法。 – Tim 2010-09-29 08:34:20