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

  • Автор темы MrRissso
  • 33
  • Обновлено
  • 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):

MrRissso


Рег
23 Feb, 2011

Тем
1

Постов
2

Баллов
12
Тем
49554
Комментарии
57426
Опыт
552966

Интересно