标签: load-data-infile

使用Load Data Infile将CSV导入MySQL

我正在尝试将CS​​V文件加载到MySQL中,并且我不断收到语法错误:

load data infile 'c:/worldminwage.csv' fields terminated by ',' enclosed
by '"' lines terminated by '\n' (YearlyWage, PercentGDP, Date
effective);
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我搞定这个吗?谢谢.

mysql sql csv import load-data-infile

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

带有特殊分隔符的MySQL LOAD DATA INFILE

我的数据包含已删除的字段\u0001和已删除的记录\u0002\n.我想用LOAD DATA INFILE一次将所有数据导入MySQL数据库.我知道这\u0001可以写成X'01',但我不知道如何写'\ u0002 \n'.

这就是我到目前为止所拥有的.

LOAD DATA LOCAL INFILE 'myfile.txt' INTO TABLE my_table 
    FIELDS TERMINATED BY X'01'
    LINES TERMINATED BY '\n'
    (col1, col2, col3);
Run Code Online (Sandbox Code Playgroud)

上面的SQL语句有效,但我担心\u0002可能会将数据与数据一起导入数据库.

我知道这\u0002可以写成X'02'但我不太确定如何X'02'与之结合\n.

有什么建议?

mysql delimiter load-data-infile number-with-delimiter

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

第1行的CSV输入中的字段数无效

我正在尝试将ODS文件导出为CSV,但是当我导入到phpmyadmin时 - 我得到"第1行的CSV输入中的字段数无效".

文件(它有两行以上但方案相同):

"Administração da Guarda Nacional Republicana"
"Administração de Publicidade e Marketing"
Run Code Online (Sandbox Code Playgroud)

表:

CREATE TABLE IF NOT EXISTS `profession` (
  `id_profession` int(11) NOT NULL,
  `profession` varchar(45) DEFAULT NULL,
  `formation_area_id_formation_area` int(11) NOT NULL,
  PRIMARY KEY (`id_profession`),
  UNIQUE KEY `profession_UNIQUE` (`profession`),
  KEY `fk_profession_formation_area1` (`formation_area_id_formation_area`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

我从不做类似的事情,可能我需要指定列.csv只有一列,表有三列.在这种情况下,文件输入属于专业列

mysql csv import phpmyadmin load-data-infile

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

mysql LOAD DATA LOCAL INFILE 具有默认时间戳列值

我有一个表,其中有一列定义如下:

| Field       | Type          | Null | Key | Default           | Extra          |
+-------------+---------------+------+-----+-------------------+----------------+
| created_at  | timestamp     | NO   |     | CURRENT_TIMESTAMP |                |
Run Code Online (Sandbox Code Playgroud)

我使用以下命令插入数据:

LOAD DATA LOCAL INFILE '<path_to_the_file>' INTO TABLE my_table FIELDS TERMINATED BY '|' (<some_columns>,created_at,<more_columns>)
Run Code Online (Sandbox Code Playgroud)

来自文件,其中每一行如下所示:

822202|NETGEAR|||||1448ce8f-efc5-7b07-6982-1ff991bf967e||||||||1|||

注意:created_at是第五列,因此该文件没有任何值,因此我期望 CURRENT_TIMESTAMP

相反,这就是我所看到的:

mysql> select distinct created_at from my_table;
+---------------------+
| created_at          |
+---------------------+
| 0000-00-00 00:00:00 |
+---------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

据推测,运行该命令的代码使用标准 JDBC,它是 jdbc.clj Clojure 库。

注意 2:如果我手动运行 INSERT INTO ... 查询,它(显然)会按预期工作。 …

mysql jdbc load-data-infile

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

MySQL 负载数据查询:反斜杠 (\) 问题

我有我有一个巨大的csv文件,149 column25K+ rows上传该文件中MySQL的表,我用MySQL LOAD DATA Query
我的查询是:

LOAD DATA local INFILE '/Dir/file.csv' INTO TABLE my_table FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES
Run Code Online (Sandbox Code Playgroud)

我的查询工作正常,当我的文件有任何Backslash (\)字符时出现问题,列值受到干扰并且文件单元格值未插入正确的列中。有没有解决这个问题的方法。
谢谢

mysql load-data-infile

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

php / mariadb更新后禁止加载数据本地文件

我知道以前已经有人问过这个问题,但是我找不到任何新的帖子可以提供帮助。直到今天,LOAD DATA LOCAL INFILE一直运行良好。除了为PHP和(不确定,但我认为)MariaDB运行更新之外,我没有做任何其他更改。我现在正在运行PHP 7.2.17MariaDB 10.1.38

现在我收到此错误: 警告:mysqli :: query():禁止装入数据本地文件

我检查了我能找到的内容:-数据库用户拥有所有权限,即使root用户也遇到此错误-检查my.cnf中是否有条目local-infile = 1

在mysql命令行中,load语句可以正常工作,但在PHP脚本中则不能。

这是我运行导入的方法:

define ('DB_USER', "db_user");
define ('DB_PASSWORD', "my_password");
define ('DB_DATABASE', "prosjekt");
define ('DB_HOST', "localhost");

$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
Run Code Online (Sandbox Code Playgroud)

我在最后一行得到错误-> $ mysqli-> query($ query);

$query = <<<eof
    LOAD DATA LOCAL INFILE '$fileName'
     INTO TABLE prosjekt
     FIELDS TERMINATED BY ','  ENCLOSED BY '"'
     LINES TERMINATED BY '\r'
    (prosjektnavn,prosjektstatus,prosjektbesk,oppdragsgiver,prosjektans,prosjektdelt,start,slutt,prosjektnr,prosjekttype,sortnr,ant_rapport,litt_link)
eof;

$mysqli->query($query);
Run Code Online (Sandbox Code Playgroud)

因此,我可以在mysql控制台中正常运行,但不能在PHP脚本中运行,今天它开始失败。任何想法如何解决?当我运行“ 显示变量”时;我明白了,所以它应该工作吗?

local_infile开启

php mariadb load-data-infile

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

LOAD DATA INFILE不与FIELDS TERMINATED BY一起使用

我在php脚本中使用下面的sql:

$sql1 = "LOAD DATA LOCAL INFILE 'test1.csv' INTO TABLE number1 (order_num,pname)";
$sql2 = "LOAD DATA LOCAL INFILE 'test1.csv' INTO TABLE number1 (order_num,pname) FIELDS TERMINATED BY ':'";
if ($result = $mysqli->query($sql)) {
    printf("<br>Section 4: %s",$mysqli->error);
    printf("|$result|$table");
} else {
    printf("<br>Section 5: %s",$mysqli->error);
}
Run Code Online (Sandbox Code Playgroud)

如果我$sql1正确地使用它会在db中带来3行(不会将它们分成正确的字段).没有错误返回.如果我使用$sql2它返回消息:

"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FIELDS TERMINATED BY ':'.."

我尝试了不同的顺序,使用ENCLOSED BY和/而不是它.我能想到的一切.有人有建议吗?

php mysql file-io load-data-infile

0
推荐指数
1
解决办法
6625
查看次数

MySQL LOAD DATA错误无法解决......!

mysql> LOAD DATA INFILE '/abc.txt' INTO TABLE test1 FIELDS TERMINATED BY '|';
ERROR 13 (HY000): Can't get stat of '/abc.txt' (Errcode: 2)
Run Code Online (Sandbox Code Playgroud)

我根据语法使用了LOAD DATA.但得到上述错误.任何人都可以告诉错误是什么..!?我试过搜索谷歌dev.mysql无法找到它是什么错误?

提前致谢

mysql load-data-infile

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