Maison > base de données > tutoriel mysql > Comment puis-je insérer conditionnellement des données dans une table MySQL en fonction de conditions spécifiques ?

Comment puis-je insérer conditionnellement des données dans une table MySQL en fonction de conditions spécifiques ?

Mary-Kate Olsen
Libérer: 2024-11-12 18:27:02
original
876 Les gens l'ont consulté

How can I conditionally insert data into a MySQL table based on specific conditions?

Instructions INSERT conditionnelles MySQL utilisant SELECT

Souvent, vous devrez peut-être insérer des données dans une table uniquement si certaines conditions sont remplies. Bien que les procédures stockées offrent un moyen d'y parvenir, explorons comment effectuer des insertions conditionnelles directement dans vos requêtes SQL.

Pour insérer des données de manière conditionnelle, vous pouvez utiliser la syntaxe suivante :

INSERT INTO TABLE
SELECT value_for_column1, value_for_column2, ...
FROM wherever
WHERE your_special_condition
Copier après la connexion

Si la sous-requête de la clause WHERE ne renvoie aucune ligne car la condition n'est pas remplie, aucune insertion n'a lieu.

Exemple :

Considérez les tableaux suivants :

CREATE TABLE products (id INT PRIMARY KEY AUTO_INCREMENT, qty_on_hand INT);
CREATE TABLE orders (id INT PRIMARY KEY AUTO_INCREMENT, product_id INT, qty INT);
Copier après la connexion

Pour passer une commande de 20 poupées vaudou (ID produit 2), nous pouvons vérifier s'il y a suffisamment de stock disponible et insérer conditionnellement la commande comme suit :

INSERT INTO orders (product_id, qty)
SELECT 2, 20
WHERE (SELECT qty_on_hand FROM products WHERE id = 2) > 20;
Copier après la connexion

Si la quantité est la main est suffisante, la ligne de commande sera créée ; sinon, l'insertion n'aura pas lieu. Cette méthode permet d'atténuer les problèmes de concurrence en vérifiant la disponibilité des stocks et en exécutant l'insertion en une seule transaction.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal