我正在尝试将CSV文件加载到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)
任何人都可以帮我搞定这个吗?谢谢.
我的数据包含已删除的字段\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.
有什么建议?
我正在尝试将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只有一列,表有三列.在这种情况下,文件输入属于专业列
我有一个表,其中有一列定义如下:
| 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 ... 查询,它(显然)会按预期工作。 …
我有我有一个巨大的csv文件,149 column并25K+ 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 (\)字符时出现问题,列值受到干扰并且文件单元格值未插入正确的列中。有没有解决这个问题的方法。
谢谢
我知道以前已经有人问过这个问题,但是我找不到任何新的帖子可以提供帮助。直到今天,LOAD DATA LOCAL INFILE一直运行良好。除了为PHP和(不确定,但我认为)MariaDB运行更新之外,我没有做任何其他更改。我现在正在运行PHP 7.2.17和MariaDB 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脚本中使用下面的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和/而不是它.我能想到的一切.有人有建议吗?
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无法找到它是什么错误?
提前致谢