MySQL и вставка строк, только если они не существуют

  • Автор темы Dialypeoppobe
  • Обновлено
  • 13, May 2024
  • #1
У меня есть база данных MySQL со следующей таблицей:
 INSERT INTO points (competition_id, user_id, pts)
VALUES (1, 2, 3), (4, 5, 6)
ON DUPLICATE KEY UPDATE competition_id = competition_id
Код (SQL): Мне нужно вставить несколько строк.

Если строка существует, ее необходимо пропустить.

Если строка не существует, ее необходимо вставить.

Не разрешается изменять существующие строки. У меня есть пара идей, но сработают ли они вообще? Как бы вы это сделали? 1)
 INSERT IGNORE INTO points (competition_id, user_id, pts) VALUES (1, 2, 3), (4, 5, 6)
Код (SQL): 2)

 CREATE TABLE points ( competition_id INT(10) UNSIGNED NOT NULL , user_id INT(10) UNSIGNED NOT NULL , pts INT(10) NOT NULL , PRIMARY KEY (competition_id, user_id) , INDEX (competition_id) , INDEX (user_id) ) ENGINE=InnoDB CHARACTER SET latin1 COLLATE latin1_swedish_ci;
Код (SQL):

Dialypeoppobe


Рег
10 Jun, 2008

Тем
67

Постов
223

Баллов
568
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно