Ви можете використовувати синтаксис INSERT ... IGNORE, якщо не хочете вживати заходів, якщо є дублікат запису.
Ви можете використовувати ЗАМІНИТИ НА Синтаксис, якщо ви хочете замінити старий запис на новий із тим самим ключем.
Або ви можете використовувати синтаксис INSERT ... ON DUPLICATE KEY UPDATE, якщо ви хочете виконати оновлення запису замість цього, коли ви зустрінете дублікат.
Редагувати: Думав, я додам кілька прикладів.
Приклади
Скажімо, у вас є таблиця tbl
з двома стовпцями id
та value
. Є один запис, id = 1 і value = 1. Якщо запустити такі оператори:
REPLACE INTO tbl VALUES(1,50);
У вас все ще є один запис із значенням id = 1 = 50. Зверніть увагу, що весь запис спочатку було ВИДАЛЕНО, а потім знову вставлено. Тоді:
INSERT IGNORE INTO tbl VALUES (1,10);
Операція виконана успішно, але нічого не вставлено. Ви все ще маєте id = 1 і значення = 50. Нарешті:
INSERT INTO tbl VALUES (1,200) ON DUPLICATE KEY UPDATE value=200;
Тепер у вас є один запис із id = 1 і значенням = 200.