标签: load-data-infile

如何将以空格分隔的文本文件导入MySQL?

我需要将大量(24MB)文本文件导入MySQL表.每一行看起来像这样:

1 1 0.008  0  0  0  0  0                                    
Run Code Online (Sandbox Code Playgroud)

每个字段后面有一个或多个空格,最后一个字段在换行符之前被约36个空格.

如何将这样的文件导入MySQL?从文档中可以看出,LOAD DATA期望所有字段都以完全相同的字符串终止.我试过了

LOAD DATA INFILE 'filename' INTO TABLE mytable FIELDS TERMINATED BY ' ';
Run Code Online (Sandbox Code Playgroud)

但MySQL将解释一个多个空格的序列作为分隔空字段.

有任何想法吗?

mysql mysqlimport load-data-infile

5
推荐指数
1
解决办法
1万
查看次数

LOAD DATA INFILE仅插入1条记录

我有一个csv文件,我试图通过命令行导入.但是只插入了一行.它们是逗号分隔的值.我在使用Excel Mac的Mac上.我保存为csv文件.如何判断行是由\ r还是\n或两者终止?这是我使用的代码:

LOAD DATA LOCAL INFILE '/Users/eric/Documents/contacts_test.csv' INTO TABLE `contacts_tmp` FIELDS TERMINATED BY ',' ESCAPED BY '\\' LINES TERMINATED BY '\n' (clientid,contactid,title,fname,mname,lname,suffixname,salutation,occupation,employer,home_addr1,home_addr2,home_city,home_state,home_zip,home_county,primary_addr1,primary_addr2,primary_city,primary_state,primary_zip,primary_county,work_addr1,work_addr2,work_city,work_state,work_zip,work_county,email,phone_home,phone_mobile,phone_work,fax,phone_other,codes);
Run Code Online (Sandbox Code Playgroud)

谢谢

mysql load-data-infile

5
推荐指数
2
解决办法
9419
查看次数

在MYSQL LOAD DATA INFILE中参数化文件名

有没有办法在LOAD DATA INFILE中动态指定文件名?是否可以像例如参数一样(语法可能不正确)进行参数化LOAD DATA INFILE'$ filename'?

mysql load-data-infile

5
推荐指数
1
解决办法
9060
查看次数

MySql文件导入(LOAD DATA LOCAL INFILE)

我有一张叫做城市的桌子:

+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | bigint(20)   | NO   | PRI | NULL    | auto_increment |
| country_id | mediumint(9) | NO   | MUL | NULL    |                |
| region_id  | bigint(20)   | NO   | MUL | NULL    |                |
| city       | varchar(45)  | NO   |     | NULL    |                |
| latitude   | float(18,2)  | NO   |     | NULL    |                |
| longitude  | float(18,2)  | …
Run Code Online (Sandbox Code Playgroud)

mysql load-data-infile

5
推荐指数
1
解决办法
3万
查看次数

如何在批量插入之前将.csv文件中的日期转换为SQL格式

我有一个csv文件,里面有几千个游戏日期,但它们都是MM/DD/YYYY格式

2/27/2011,3:05 PM,26,14
Run Code Online (Sandbox Code Playgroud)

(26和14是团队ID #s),并尝试将它们放入SQL中,这只会导致将0000-00-00放入我的表的日期字段中.这是我尝试使用的命令:

LOAD DATA LOCAL INFILE 'c:/scheduletest.csv' INTO TABLE game
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(`date`, `time`, `awayteam_id`, `hometeam_id`);
Run Code Online (Sandbox Code Playgroud)

但同样,它不会做正确的日期.有没有办法让它在尝试插入日期时转换日期?我发现了另一个与此类似的问题,但我无法让它发挥作用.

mysql sql load-data-infile

5
推荐指数
1
解决办法
2万
查看次数

使用变量加载数据INFILE

我想把LOAD DATA INFILE用作sotred程序,但似乎无法完成.然后我尝试了通常的方式将代码嵌入到应用程序本身,就像这样,

conn = new MySqlConnection(connStr);
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd = conn.CreateCommand();
string tableName = getTableName(serverName);
string query = "LOAD DATA INFILE '" + fileName + "'INTO TABLE "+ tableName +" FIELDS TERMINATED BY '"+colSep+"' ENCLOSED BY '"+colEncap+"' ESCAPED BY '"+colEncap+"'LINES TERMINATED BY '"+colNewLine+"' ("+colUpFormat+");";
cmd.CommandText = query;
cmd.ExecuteNonQuery();
conn.Close();
Run Code Online (Sandbox Code Playgroud)

生成的查询保存在字符串变量查询中,

        LOAD DATA INFILE 'data_file.csv'INTO TABLE tbl_shadowserver_bot_geo FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '"'LINES TERMINATED BY '\n' (timestamp,ip,port,asn,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,url,agent,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy);
Run Code Online (Sandbox Code Playgroud)

但现在当我运行该程序时,它给出了一个错误说,

        MySQLException(0x80004005) Parameter @dummy must …
Run Code Online (Sandbox Code Playgroud)

c# mysql load-data-infile

5
推荐指数
1
解决办法
3766
查看次数

Mysql 从加载 infile 中的另一个表中选择

我有一个 csv 文件,我正在使用该load local infile命令将其加载到 mysql 数据库中。

csv 有一组从 5 个值的枚举中收集的字段,我需要基于这些进行查询。为了加快查询速度(可能高达 600 万行),我试图在参考表上进行选择以插入一个 id 而不是字符串值。

load data local infile 'test_file.csv'
    into table matching
    fields terminated by ','
    enclosed by '"'
    (... @match, ...)
    set
        ...
        match = select id from matchRefData where name = @match,
        ...;
Run Code Online (Sandbox Code Playgroud)

根据http://dev.mysql.com/doc/refman/5.1/en/load-data.html子查询可以在 set 操作的右侧使用,但似乎每次都失败:

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check 
the manual that corresponds to your MySQL server version for the right …
Run Code Online (Sandbox Code Playgroud)

mysql load-data-infile

5
推荐指数
1
解决办法
1652
查看次数

有没有办法在 Win7 上用来自 json 文件的数据填充 MySQL 5.7 表?

我有以下示例 json 文件,我正在尝试用它填充 MySQL 表。由于 MySQL 5.7 支持 json 作为本机数据类型,我认为这应该不是问题,但是 MySQL 的 json 验证器似乎在文件内的换行符方面存在问题。一旦我摆脱了所有换行符并将我的示例文件写在一行中,它就会完美运行。

[
{
    "somestuff": [
        {
            "field1": "val1",
            "field2": 17,
            "field3": 27,
            "field4": 42,
            "field5": 73
        },
        {
            "field1": "val2",
            "field2": 3,
            "field3": 12,
            "field4": 13,
            "field5": 100
        }
    ],
    "field0": "image",
    "path": "some path"
}
]
Run Code Online (Sandbox Code Playgroud)

我知道 json 本身在包含反斜杠的字符串方面存在问题,但是即使在写入任何类型的单词而不是路径时,MySQL json 验证器仍然无法完全读取 json 文件并且只是在第一个换行符之前停止。我仍然收到以下错误:

Error Code: 3140. Invalid JSON text: "Invalid value." at position 1 in value (or column) '['. 
Run Code Online (Sandbox Code Playgroud)

使用以下查询时:

-- create test table for json …
Run Code Online (Sandbox Code Playgroud)

mysql json load-data-infile mysql-5.7

5
推荐指数
1
解决办法
5164
查看次数

从LOAD DATA INFILE中查找MySQL错误

我在MySQL中运行LOAD DATA INFILE命令,其中一个文件在mysql提示符下显示错误.

如何查看警告和错误?现在我唯一要做的就是提示在导入时报告65,535个警告.

mysql> use dbname;
Database changed
mysql> LOAD DATA LOCAL INFILE '/dump.txt'
    -> INTO TABLE table
    -> (id, title, name, accuracy);
Query OK, 897306 rows affected, 65535 warnings (16.09 sec)
Records: 897306  Deleted: 0  Skipped: 0  Warnings: 0
Run Code Online (Sandbox Code Playgroud)

我如何让mysql向我展示这些警告是什么?我查看了错误日志,但我找不到它们.运行"SHOW WARNINGS"命令仅返回64个结果,这意味着剩下的65,000个警告必须在其他地方.

2 |
| Warning | 1366 | Incorrect integer value: '' for column 'accuracy' at row 2038
3 |
| Warning | 1366 | Incorrect integer value: '' for column 'accuracy' at row 2038
4 |
| …
Run Code Online (Sandbox Code Playgroud)

mysql sql load-data-infile

4
推荐指数
2
解决办法
1万
查看次数

MySQL LOAD XML INFILE的问题

我有一个XML文档,格式为...

<?xml version="1.0" encoding="UTF-8"?>
<yahootable>
    <row>
        <various><![CDATA[ multiline 
        text, "&" 
        other <stuff> ]]>
        </various>
        <id>1</id>
        <message><![CDATA[
                sdfgsdfg
                dsfsdfsd ]]>
        </message>
    </row>
<yahootable>
Run Code Online (Sandbox Code Playgroud)

...并且想要使用MySQL的LOAD XML LOCAL INFILE将其插入具有列的表中;(各种,ID,消息)。我似乎无法从未解析的CDATA标记中获取任何数据到数据库列中。是CDATA标记之间的数据被完全忽略,还是我错过了某些事情?我期望CDATA会转义非法的XML字符并将其作为常规文本插入。

谢谢。

xml mysql cdata load-data-infile

4
推荐指数
1
解决办法
2356
查看次数

标签 统计

load-data-infile ×10

mysql ×10

sql ×2

c# ×1

cdata ×1

json ×1

mysql-5.7 ×1

mysqlimport ×1

xml ×1