J'ai 1-nombre d'enregistrements qui doivent être entrées dans une table. Quelle est la meilleure façon de le faire dans une requête? Dois-je simplement faire une boucle et insérer un enregistrement par itération? Ou est-il un meilleur moyen?
Réponses
Trop de publicités?De manuel MySQL
INSÉRER des instructions utilisant des VALEURS syntaxe pouvez insérer plusieurs lignes. Faire ce, comprennent plusieurs listes de colonne valeurs, chacun enfermé à l'intérieur entre parenthèses et séparés 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 devriez lot insère ensemble à l'aide de l'API appropriée.
E. g. 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();
Load data infile requête est bien meilleure option, mais certains serveurs comme godaddy restreindre cette option sur l'hébergement mutualisé, donc , seulement deux options à gauche puis insérer un enregistrement à chaque itération ou d'insertion , mais l'insertion de lot a son limitaion de caractères si votre requête dépasse ce nombre de caractères défini dans mysql alors que votre requête accident , Alors je suggère d'insérer des données dans des morceaux munies de lot insérer , cela permettra de minimiser le nombre de connexions établies avec la base de données.bonne chance les gars
mysql vous permet d'insérer plusieurs lignes à la fois à INSÉRER manuellement