MySQL批量插入(忽略主键id,但重复更新另一个键)

时间:2011-08-23 21:39:18

标签: mysql insert bulkinsert

在批量插入时,如何仅更新主键'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'

2 个答案:

答案 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的字段,它将与更新相同, 如果它不存在,它将与常规插入相同。