J'ai plusieurs ensembles de données à insérer en même temps, disons 4 lignes. Mon tableau comporte trois colonnes : Person
, Id
et Office
.
INSERT INTO MyTable VALUES ("John", 123, "Lloyds Office");
INSERT INTO MyTable VALUES ("Jane", 124, "Lloyds Office");
INSERT INTO MyTable VALUES ("Billy", 125, "London Office");
INSERT INTO MyTable VALUES ("Miranda", 126, "Bristol Office");
Puis-je insérer les 4 lignes dans une seule instruction SQL ?
6 votes
Note du modérateur : Veuillez adresser toute discussion sur le bien-fondé de cette question à ce méta post .
4 votes
Pour oracle sql, voir stackoverflow.com/a/93724/1452172
0 votes
Pour insérer plusieurs enregistrements dans une ligne, vous pouvez également essayer ceci Exemple : insérer dans tablename (col1 ,col2) select uid,uname from usertable ;
0 votes
Vous pouvez également utiliser cette requête pour insérer plusieurs lignes dans une seule requête SQL. Voici la requête : INSERT into tablename1(Person, Id, Office) SELECT 'John', 1, 'Lloyds Office' UNION SELECT 'Jane', 2, 'Lloyds Office' UNION SELECT 'Billy', 3, 'Lloyds Office' UNION SELECT 'Miranda', 4, 'Lloyds Office'.
0 votes
Pour autant que je sache, le nom de cette technique n'a rien de spécifique, juste
insert multiple rows
pour ceux qui souhaitent pouvoir se référer à la technique de manière conceptuelle. Réf : dev.mysql.com/doc/refman/5.5/fr/insert.html0 votes
@Kzqai, qu'en est-il
insert set col1='val1', col2='val2 (?) col1='val3', col2=val2'
dans/pour mysql ? J'entends par là l'insertion de plusieurs lignes avec une méthode spécifique à mysql.insert set
syntaxe ; est-ce possible ?1 votes
@Chinggis6 Oui, c'est trivialement possible, il suffit d'utiliser un select pour les valeurs des colonnes :
0 votes
@Kzqai pouvez-vous fournir un exemple s'il vous plaît ?
2 votes
@Chinggis6
insert into profiles (name, description) select first, 'Auto-generated' from users
Vous semblez confondre les instructions d'insertion et de mise à jour, qui sont deux choses différentes.0 votes
@Kzqai Non. Veuillez vérifier à nouveau le lien que vous avez fourni ci-dessus. MySQL, contrairement à d'autres bases de données, vous permet d'utiliser les éléments suivants
insert
dans leupdate
la mode avecset
plutôt que le mot-clévalues
. Il s'agit d'une instruction SQL non standard très spécifique à MySQL.1 votes
@Chinggis6 Ah je vois. Eh bien, je recommande simplement d'utiliser la norme
insert ... select
syntaxe, il vous permettra d'obtenir tout ce dont vous avez besoin et il est aussi flexible qu'on peut le souhaiter. dev.mysql.com/doc/refman/5.5/fr/insert.html0 votes
INSERT INTO MyTable VALUES ("John", 123, "Lloyds Office"),("Jane", 124, "Lloyds Office"),("Billy", 125, "London Office"),("Miranda", 126, "Bristol Office") ;
0 votes
@GeorgeStocker, il est intéressant de noter que cette question a été fermée car elle fait double emploi avec une question de moindre qualité (en termes de vues et de votes positifs) posée il y a plus d'un an. après cette question. La convention ne veut-elle pas que la question posée en premier soit celle qui reste ouverte ?
0 votes
Y a-t-il une différence de performance entre ces deux méthodes si nous prenons 5000 lignes ?