我在文件中有200万条记录。我正试图将所有记录插入我的表格。我应该使用哪种方式非常复杂。 LOAD DATA INFILE
或hibernate begin transaction
。
如何快速插入所有数据?
文件格式为txt
,并以行分隔。需要只插入一行而其他行将生成自动。
答案 0 :(得分:0)
LOAD DATA INFILE
是mysql数据库用户的首选。但是,如果您想验证数据,那么您需要付出努力。您也可以使用Data Integration
工具。 ex- talend是开源数据集成工具。通过点击它从文件加载到数据库等等。它对大型数据集很有用。您还可以验证和清理数据。
答案 1 :(得分:0)
我决定使用Load Data Infile
,但这是另一个问题。当我完成处理时,我收到了这个警告:
WARN org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL警告代码:1062,SQLState:23000 '为关键'PRIMARY'
我的查询
String query = " LOAD DATA LOCAL INFILE :file " +
" IGNORE INTO TABLE Code" +
" (code) " +
" SET point = 0, created = NOW(), activated = 0; ";
当我从mysql检查我的记录时,CODE列上没有值
+-----------+-------+------+-----------+---------------+---------------------+
| code | point | user | activated | activatedDate | created |
+-----------+-------+------+-----------+---------------+---------------------+
| 0 | NULL | 0 | NULL | 2015-10-01 16:35:02 |
| 0 | NULL | 0 | NULL | 2015-10-01 16:35:02 |
+-----------+-------+------+-----------+---------------+---------------------+
2 rows in set (0.00 sec)