Mysql CakePHP中有超过3000笔交易。怎么用?

Mysql CakePHP中有超过3000笔交易。怎么用?,mysql,cakephp,transactions,innodb,Mysql,Cakephp,Transactions,Innodb,我们正在通过SOAP将Magento产品导入CakePHP环境。我们有大约3000种产品,当然我们希望保持数据库中没有重复入口 我们使用InnoDB作为CakePHP中的产品数据库 我们有不同的方法: 我们在产品模型上设置了validate var,并希望产品id是唯一的。问题:交易限制在2000号环岛。由于验证的唯一规则要求每个产品都使用SELECT语句,因此不会发生任何事情,因为事务被“消费” 将产品id设置为在数据库本身中唯一。看起来不错,唯一的问题是,在第一次导入之后,它总是抛出一个“重

我们正在通过SOAP将Magento产品导入CakePHP环境。我们有大约3000种产品,当然我们希望保持数据库中没有重复入口

我们使用InnoDB作为CakePHP中的产品数据库

我们有不同的方法:

  • 我们在产品模型上设置了validate var,并希望产品id是唯一的。问题:交易限制在2000号环岛。由于验证的唯一规则要求每个产品都使用SELECT语句,因此不会发生任何事情,因为事务被“消费”
  • 将产品id设置为在数据库本身中唯一。看起来不错,唯一的问题是,在第一次导入之后,它总是抛出一个“重复条目”-警告(这是正确的),并且不会继续。 我没有办法在那个查询中使用“忽略”

  • 有什么想法吗?

    因为问题与SQL相关,而且是一个导入问题,所以我会手动构建查询。可能会写入tmp/目录中的文件。所有这些插入都可以组成一个事务。通过这种方式,您可以在查询中添加on duplicate key ignore

    就其本质而言,CakePHP运行大量查询,而且由于您在事务方面受到限制,所以我不会选择cake


    当然,您可以更深入地研究cake,了解它的innodb类是如何工作的,看看是否有办法将查询包装到事务中。

    因此,“cake方式”没有解决方案?似乎没有其他方法可以做到这一点。所以,谢谢你的回答,我会接受的,因为似乎没有更好的方法。