Как сделать пакетную вставку в MySQL

У меня есть 1-много записей, которые необходимо ввести в таблицу. Каков наилучший способ сделать это в запросе? Должен ли я просто сделать цикл и вставить одну запись на итерацию? Или есть лучший способ?

5 ответов


С руководство MySQL

инструкции INSERT, использующие значения синтаксис может вставлять несколько строк. Делать это включает несколько списков столбцов значения, каждое заключенное внутри скобки и разделены запятыми. Пример:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

большую часть времени вы не работаете в клиенте MySQL, и вы должны пакетные вставки вместе с помощью соответствующего API.

Е. Г. в 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();

http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/ad/tjvbtupd.htm


Insert into table(col1,col2) select col1,col2 from table_2;

пожалуйста, идите to:http://dev.mysql.com/doc/refman/5.5/en/insert.html


загрузить данные входной_файл запроса является гораздо лучшим вариантом, но некоторые серверы, как GoDaddy ограничить эту опцию хостинга, так что , варианта всего два влево, потом один вставить запись на каждой итерации или пакетной вставки , но пакетная вставка имеет limitaion символов, если ваш запрос превышает это количество персонажей в MySQL, то запрос рухнет , поэтому я предлагаю вставить данные в куски тетивами пакетной вставки , это позволит минимизировать число установленных подключений к базе данных.удачи ребята!--1-->


mysql позволяет вставлять сразу несколько строк вставить инструкцию