J'ai une requête SQL où je veux insérer plusieurs lignes dans une seule requête. j'ai donc utilisé quelque chose comme:
$sql = "INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29)";
mysql_query( $sql, $conn );
Le problème est que lorsque j'exécute cette requête, je veux vérifier si une UNIQUE
clé (qui n'est pas la PRIMARY KEY
), par exemple 'name'
ci-dessus, doit être vérifiée et si une telle 'name'
existe déjà, la ligne entière correspondante doit être mise à jour sinon insérée.
Par exemple, dans l'exemple ci-dessous, si 'Katrina'
est déjà présent dans la base de données, la ligne entière, quel que soit le nombre de champs, doit être mise à jour. Encore une fois s'il 'Samia'
n'est pas présent, la ligne doit être insérée.
J'ai pensé à utiliser:
INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29) ON DUPLICATE KEY UPDATE
Voici le piège. Je suis resté coincé et confus sur la façon de procéder. J'ai plusieurs lignes à insérer / mettre à jour à la fois. Veuillez me donner une direction. Merci.