У меня есть база данных MySQL со следующей таблицей:
Код (SQL): Мне нужно вставить несколько строк. Если строка существует, ее необходимо пропустить. Если строка не существует, ее необходимо вставить. Не разрешается изменять существующие строки.
У меня есть пара идей, но сработают ли они вообще? Как бы вы это сделали?
1)
Код (SQL): 2)
![MySQL и вставка строк, только если они не существуют MySQL и вставка строк, только если они не существуют](http://)
Код (SQL):
Код:
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):