У меня есть SQL-запрос, где я хочу вставить несколько строк в единый запрос. таким образом, я использовал что-то как:
$sql = "INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29)";
mysql_query( $sql, $conn );
Проблема состоит в том, когда я выполняю этот запрос, я хочу проверить ли a UNIQUE
ключ (который не является PRIMARY KEY
), например. 'name'
выше, должен быть проверен и если такой 'name'
уже существует, соответствующая целая строка должна быть обновлена иначе вставленная.
Например, в примере ниже, если 'Katrina'
уже присутствует в базе данных, целая строка, независимо от количества полей, должна быть обновлена. Снова, если 'Samia'
не присутствует, строка должна быть вставлена.
Я думал об использовании:
INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29) ON DUPLICATE KEY UPDATE
Вот прерывание. Я застрял и перепутал о том, как продолжить двигаться. У меня есть несколько строк для вставления/обновления за один раз. Дайте мне направление.Спасибо.
Используйте ключевое слово ЗНАЧЕНИЯ
для ссылки на новые значения (см. Документацию ]).
INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29)
ON DUPLICATE KEY UPDATE
age = VALUES(age),
...
Вы можете использовать Заменить вместо INSERT ... ON DUPLICATE KEY UPDATE.