Maison >base de données >tutoriel mysql >Comment insérer plusieurs lignes de sous-requêtes dans des tables dans MySQL ?

Comment insérer plusieurs lignes de sous-requêtes dans des tables dans MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-30 03:50:02554parcourir

How to Insert Multiple Rows from Subqueries into Tables in MySQL?

Insertion de plusieurs lignes à partir de sous-requêtes dans des tables

Lorsque vous tentez d'insérer plusieurs lignes dans une table à l'aide d'une sous-requête qui renvoie plusieurs lignes, vous pouvez rencontrer l'erreur 1242 (21000) : la sous-requête renvoie plus d'une ligne. Cette erreur est due à la contrainte de MySQL concernant l'insertion de plusieurs lignes à l'aide d'une seule instruction INSERT.

Pour résoudre ce problème, utilisez la technique suivante :

Combinez les données de ligne statiques que vous souhaitez insérer avec la sous-requête. Par exemple, si vous souhaitez insérer le nom "Henry" dans une colonne nommée "names" pour chaque ligne renvoyée par la sous-requête, modifiez la requête comme suit :

INSERT INTO Results (People, names)
SELECT d.id, 'Henry'
FROM Names f
JOIN People d ON d.id = f.id

Dans cette requête modifiée, le static la valeur 'Henry' est combinée avec la sous-requête. En conséquence, chaque ligne renvoyée par la sous-requête aura la colonne « noms » renseignée avec la valeur « Henry ».

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!

Déclaration:
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