如何在没有UNIQUE索引或PRIMARY KEY的MySQL中使用ON DUPLICATE KEY UPDATE?

B S*_*ven 4 mysql sql indexing primary-key

MySQL手册说明:

如果指定ON DUPLICATE KEY UPDATE,并且插入的行将导致UNIQUE索引或PRIMARY KEY中出现重复值

如果您的表没有UNIQUE索引或PRIMARY KEY,但您不想复制列的条目(例如user_id),该怎么办?

有没有办法在MySQL中做到这一点?

Ker*_*mit 5

INSERT INTO `table` (value1, value2) 
SELECT 'stuff for value1', 'stuff for value2' FROM `table` 
WHERE NOT EXISTS (SELECT * FROM `table` 
                  WHERE value1='stuff for value1' AND value2='stuff for value2') 
LIMIT 1
Run Code Online (Sandbox Code Playgroud)

来源:如何在MySQL中"插入,如果不存在"?

  • 我的情况是相同的,但我想要的是如果记录存在然后更新该记录,是否可能没有唯一和主键 (3认同)