0
votes

Avec Insérer Set Syntaxe Puis-je insérer plusieurs rangées?

J'ai lu dans ce blog https://www.bennadel.com/blog/2913-utilisant-thinSert-into-set-serser-in-mysql.htm , que vous pouvez utiliser ce qui suit définir < / Code> Syntaxe Pour insérer des enregistrements.

Exemple: xxx

est-il possible d'insérer plusieurs lignes avec une seule instruction?


6 commentaires

ou Insertion de plusieurs rangées dans MySQL


Ce n'est pas une question en double, je ne veux pas utiliser une autre approche, c'est-à-dire insertion dans les valeurs (..) (..), (..) Parce que j'ai 10 colonnes dans mes valeurs de table et d'enregistrement (que je veux insérer) sont varié IE. dans le 1er record v1, v2, uniquement en 2e record v3 v4 seulement


Sir Petter, Bennadel.com / blog / ... , nous pouvons insérer en utilisant "SET" également


Vous devez clarifier votre question, que ce soit cette syntaxe exacte que vous aimez comme vous l'avez vu, vous avez enseigné votre question portait sur l'insertion de plusieurs rangées.


J'ai fait une édition à votre question, permet de voir si cela se fait rouvrir, de toute façon la réponse à votre question est probablement non, voir dev.mysql.com/doc/refman/8.0/fr/insert.html , il semble y avoir aucune syntaxe pour ajouter plusieurs rangées.


Je suppose que vous voudriez cela afin que si on échoue, les autres ne sont pas insérés. Si oui, utilisez ensuite un transaction avec une restauration pourrait résoudre ce problème. Mais ce type d'insertion de MySQL spécifique à ... SET Syntax n'est pas conçu pour plusieurs inserts.


5 Réponses :


1
votes

Vous pouvez utiliser insérer dans Sélectionner ... code>.

insert into tbl1 (col1, col2, col3)
   select equivalent_col1, equivalent_col2, equivalent_col3 from tbl2 
     where filterCol = 1;


2 commentaires

Simonare Monsieur, désolé, je veux connaître et utiliser Insert dans la requête «Définir», je ne veux pas utiliser une autre approche, c'est-à-dire Insertion dans (Col_AMes) Valeurs (..), (..) Parce que j'ai 10 colonnes dans mon Les valeurs de table et d'enregistrement (que je veux insérer) sont variées, c'est-à-dire. dans le 1er record v1, v2, uniquement en 2e record v3 v4 seulement


Je ne pouvais pas comprendre ce que tu veux dire. La solution de @ Sibert fonctionne-t-elle pour vous?



1
votes

Une autre approche xxx

Vous pouvez également raccourcir cela (positions de valeur exacte): xxx


2 commentaires

Sibert, je suis désolé, je veux savoir et utiliser Insert dans la requête «Définir», je ne veux pas utiliser une autre approche, c'est-à-dire Insertion dans les valeurs (..), (..), (..) Parce que j'ai 10 colonnes dans Mes valeurs de table et d'enregistrement (que je veux insérer) sont variées, c'est-à-dire. dans le 1er record v1, v2, uniquement en 2e record v3 v4 seulement


Jamais entendu parler de set. Mais cela ressemble à "upsert". Insertion ou mise à jour des valeurs.



0
votes

Pour ajouter plusieurs lignes dans une table à l'aide d'une seule instruction insertion, vous utilisez la syntaxe suivante:

INSERT INTO MyTable
  ( Column1, Column2, Column3 )
VALUES
  ('John', 123, 'Lloyds Office'), 
  ('Jane', 124, 'Lloyds Office'), 
  ('Billy', 125, 'London Office'),
  ('Miranda', 126, 'Bristol Office');


1 commentaires

monsieur je suis désolé, je veux savoir et utiliser Insérer dans la requête 'Set', je ne veux pas utiliser une autre approche, c'est-à-dire Insertion dans (Col_AMes) Valeurs (..), (..) Parce que j'ai 10 colonnes dans mon Les valeurs de table et d'enregistrement (que je veux insérer) sont variées, c'est-à-dire. dans le 1er record v1, v2, uniquement en 2e record v3 v4 seulement



2
votes

Non, l'insérer SET code> Syntaxe ne peut pas être utilisé pour insérer plusieurs lignes. Si vous regardez les Insérer ... SET CODE> Syntaxe Ici , vous verrez:

assignment:
    col_name = value

assignment_list:
    assignment [, assignment] ...


0 commentaires

1
votes

L'insérer dans ... SET ... code> Syntaxe ne peut pas être utilisé pour plusieurs inserts avec la même instruction.

Mais vous pouvez utiliser un insert dans code> à partir d'un Sélectionnez code> avec Union tout code>.
Ou un insérer dans code> à partir des valeurs code>. P>

puis mettez NULL dans les colonnes qui n'ont pas de valeur. P>

Exemple: strong> p>

id | col1 | col2 | col3 | col4 | col5
-: | :--- | :--- | :--- | :--- | :---
 1 | val1 | null | null | val4 | null
 2 | null | val2 | null | null | null
 3 | val1 | null | val3 | null | val5
 4 | null | val2 | val3 | val4 | null
 5 | val1 | null | val3 | null | val5


0 commentaires