我想基于两列更新或插入数据。
每个用户都可以有条目。每个用户的条目必须是用户唯一的。不同的用户可以共享条目ID。
每个条目都包含一段文字。
id, user_id, entry_number, data
1, 1, 1, "hello"
2, 1, 2, "world"
3, 1, 3, "fizz"
4, 2, 1, "buzz"
5, 2, 3, "fizzbuzz"
我希望能够插入/更新(取决于它是否存在)此数据。我该怎么做? 提前致谢
答案 0 :(得分:1)
您可以在对上创建唯一索引(user_id,entry_number),然后使用
INSERT ... ON DUPLICATE KEY UPDATE
但是,这个ON DUPLICATE KEY可能是MySQL的非标准扩展(请检查?)。如果您打算在不同的数据库引擎上使用它,您可能需要手动进行检查。
答案 1 :(得分:1)
使用REPLACE:“REPLACE的工作原理与INSERT完全相同,只是如果表中的旧行与PRIMARY KEY或UNIQUE索引的新行具有相同的值,则在插入新行之前删除旧行“。在http://dev.mysql.com/doc/refman/5.0/en/replace.html
REPLACE tbl_name (id, user_id, entry_number, data) VALUES (1, 1, 1, "something")
答案 2 :(得分:0)
使用REPLACE
:http://dev.mysql.com/doc/refman/5.5/en/replace.html
REPLACE INTO your_table (id, user_id, entry_number, data)
VALUES (1, 1, 1, "hello2")