J'ai un nombre multiple d'enregistrements qui doivent être entrés dans une table. Quelle est la meilleure façon de faire cela dans une requête? Devrais-je simplement faire une boucle et insérer un enregistrement par itération? Ou y a-t-il un meilleur moyen?
Depuis le manuel MySQL
Les instructions INSERT utilisant la syntaxe VALUES peuvent insérer plusieurs lignes. Pour ce faire, incluez plusieurs listes de valeurs de colonnes, chacune entourée de parenthèses et séparée par des virgules. Exemple:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
La plupart du temps, vous ne travaillez pas dans un client MySQL et vous devez regrouper les insertions par lots en utilisant l'API appropriée.
Par exemple. dans JDBC:
connection con.setAutoCommit(false);
PreparedStatement prepStmt = con.prepareStatement("UPDATE DEPT SET MGRNO=? WHERE DEPTNO=?");
prepStmt.setString(1,mgrnum1);
prepStmt.setString(2,deptnum1);
prepStmt.addBatch();
prepStmt.setString(1,mgrnum2);
prepStmt.setString(2,deptnum2);
prepStmt.addBatch();
int [] numUpdates=prepStmt.executeBatch();
Insert into table(col1,col2) select col1,col2 from table_2;
S'il vous plaît aller à: http: //dev.mysql.com/doc/refman/5.5/en/insert.html
Charger une requête infile de données est une option bien meilleure, mais certains serveurs comme godaddy limitent cette option à un hébergement partagé. Il ne reste donc que deux options, à savoir insérer un enregistrement à chaque itération ou insertion de lot. nombre de caractères définis dans mysql, votre requête se bloquera. Je suggère donc d’insérer des données dans des morceaux avec une insertion par lot, cela minimisera le nombre de connexions établies avec database.best of luck guys
mysql vous permet d'insérer plusieurs lignes à la fois INSERT manual