在批量插入时,如何仅更新主键'id'的重复键更新,而只更新另一个键'another_unique_id'的条目?
INSERT INTO
some_table (`id`, `another_unique_id`, `raw_data)
VALUES (5 , 'ABCDEFG', 'blah')
ON DUPLICATE KEY UPDATE ...?
例如 - 如果有一个id为5的记录,我不想更新它。我只是插入一条新记录。
如果'another_unique_id'字段中有'ABCDEFG'的记录,那么我想将该条目更新为'blah'
答案 0 :(得分:1)
我认为你应该通过
INSERT INTO
some_table (`id`, `another_unique_id`, `raw_data)
VALUES (NULL , 'ABCDEFG', 'blah')
ON DUPLICATE KEY UPDATE ...?
否则没有意义
答案 1 :(得分:1)
至少在mysql上你可以使用:
INSERT IGNORE INTO
some_table (`id`, `another_unique_id`, `raw_data`)
VALUES (5 , 'ABCDEFG', 'blah')
如果存在id为5的字段,它将与更新相同, 如果它不存在,它将与常规插入相同。