提问者:小点点

原则:关于重复密钥更新


如何使用选项对重复密钥更新编写插入原则查询?


共2个答案

匿名用户

问题是这是一个MySQL特有的问题,因此它不会被教义直接涵盖。

正如注释中提到的,您需要为此编写一个RawSQL查询。这是最简单的方法。

如果您想要它更复杂和真正的DB独立,那么就看看事件和它的可能性。在执行实际查询之前,您可以检查是否存在,如果存在,则相应地执行操作。

一种独立于ORM/PHP的方法是编写一个存储过程/触发器来处理数据库端的这个问题。

匿名用户

对于Symfony2,请使用原始SQL:

$em->getConnection()->prepare("INSERT INTO table SET 
    some_fields = "some data", created_at = NOW() 
    ON DUPLICATE KEY UPDATE
    some_fields = "some data", updated_at = NOW()
")->execute();