Laravel:存在则更新,否则插入?

4
有没有一种方法在Laravel(Eloquent,Fluent...)中更新一行数据,如果这行数据不存在,则插入该行?
1个回答

2
不知道Laravel是否有这样的方法,但是在mysql中,您可以使用以下查询来实现此操作。
INSERT INTO t SET c1='foo', c2='bar' ON DUPLICATE KEY UPDATE c2='bar'

为了让 trick 生效,您必须在此表上拥有一个唯一索引


1
更具体地说,在这种特定情况下,“UNIQUE”索引必须涵盖“c1”,因为正是该索引用于检测重复项。 - tadman
一个示例来演示 http://www.sqlfiddle.com/#!2/daf5f/1,以及 MySQL 文档 http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html。 - GarethD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接