MySQL ON DUPLICATE KEY UPDATE для вставки нескольких строк в одном запросе
У меня есть запрос SQL, где я хочу вставить несколько строк в одном запросе. поэтому я использовал что-то вроде:
$sql = "INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29)";
mysql_query( $sql, $conn );
Проблема в том, что когда я выполняю этот запрос, я хочу проверить,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
Вот ловушка. Я застрял и запутался в том, как поступить. У меня есть несколько строк для вставки / обновления одновременно. Пожалуйста, дайте мне направление. Благодарю.