Maison >base de données >tutoriel mysql >Comment effectuer une INSERT conditionnelle dans MySQL pour garantir des lignes uniques ?
Insertion conditionnelle MySQL : insertion uniquement si unique
MySQL offre une prise en charge limitée pour les insertions conditionnelles. Dans ce cas spécifique, vous souhaitez insérer une ligne dans x_table uniquement si la combinaison utilisateur et élément n'existe pas.
L'instruction INSERT de MySQL ne permet pas l'insertion conditionnelle directe. Cependant, vous pouvez utiliser une solution de contournement en utilisant une sous-requête. Une approche consiste à utiliser la clause NOT EXISTS :
INSERT INTO x_table (instance, user, item) SELECT 919191, 123, 456 FROM dual WHERE NOT EXISTS ( SELECT * FROM x_table WHERE user = 123 AND item = 456 );
Dans cette requête, la sous-requête avec NOT EXISTS vérifie si l'utilisateur et l'élément spécifiés existent déjà dans x_table. Si ce n'est pas le cas, la nouvelle ligne sera insérée. Sinon, rien ne se passe.
Une autre option consiste à utiliser l'instruction MERGE, qui permet de spécifier des opérations d'insertion et de mise à jour conditionnelles dans une seule instruction. Cependant, MERGE est pris en charge dans MySQL uniquement en tant qu'extension, et non dans le cadre des fonctionnalités de base.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!