J'ai 1-plusieurs nombre d'enregistrements qui doivent être saisis dans une table. Quelle est la meilleure façon de faire cela dans une requête? Dois-je simplement faire une boucle et insérer un enregistrement par itération? Ou y a-t-il un meilleur moyen?
148
INSERT
prend en charge cela nativement !Réponses:
À partir du manuel MySQL
la source
max_allowed_packet
La plupart du temps, vous ne travaillez pas dans un client MySQL et vous devez regrouper les insertions en utilisant l'API appropriée.
Par exemple dans JDBC:
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/ad/tjvbtupd.htm
la source
Veuillez vous référer à la documentation MySQL sur l'instruction INSERT
la source
insert into select from
performances? est-ce aussi rapide qu'une insertion en vrac?Charger une requête de fichier de données est une bien meilleure option, mais certains serveurs comme godaddy limitent cette option sur l'hébergement partagé, il ne reste donc que deux options, puis une est insérer un enregistrement à chaque itération ou insertion de lot, mais l'insertion par lot a sa limite de caractères si votre requête dépasse cela nombre de caractères définis dans mysql alors votre requête plantera, donc je suggère d'insérer des données en morceaux avec l'insertion par lots, cela minimisera le nombre de connexions établies avec la base de données.
la source
LOAD DATA LOCAL INFILE '/users/name/txt.file'
mysql vous permet d'insérer plusieurs lignes à la fois INSERT manuel
la source