免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4556 | 回复: 17
打印 上一主题 下一主题

[文本处理] shell 导入mysql数据库的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-09-26 16:09 |只看该作者 |倒序浏览
本帖最后由 tahaomei 于 2014-09-26 16:11 编辑

比如我的sha.txt文件内容如下:

禾嘉股份;600093
大名城;600094
哈高科;600095
云天化;600096
开创国际;600097
广州发展;600098
林海股份;600099
同方股份;600100
明星电力;600101
莱钢股份;600102
青山纸业;600103


我在shell中敲入如下mysql命令:

  1. create database IF NOT EXISTS dbname;
  2. use dbname;
  3. create table IF NOT EXISTS tablename
  4. (
  5.    id int not null auto_increment primary key,
  6.    code int(6) not null,
  7.    name varchar(40) not null
  8. )
  9. comment='股票代码及名称表'
  10. engine=InnoDB;

  11. load data local infile "/Users/macair/stock/dat/sha.txt" into table tablename(name,code) fields terminated by ';' lines terminated
  12. by '\r\n';
复制代码
结果执行的时候,出现如下错误,

ERROR 1064 (42000) at line 13: 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 '/Users/macair/stock/dat/sha.txt into table tablename(name,code) fields termin' at line 1


请问是什么原因呢?google了下,还是没找到答案,觉得自己的代码没错误啊。

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
2 [报告]
发表于 2014-09-26 16:34 |只看该作者
回复 1# tahaomei

为什么是\r\n而不是\n呢?

论坛徽章:
0
3 [报告]
发表于 2014-09-26 16:35 |只看该作者
回复 2# Herowinter

即使换成了\n,还是一样的错。



   

论坛徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
4 [报告]
发表于 2014-09-26 16:38 |只看该作者
没用过mysql,不过为啥是用双引号括起来文件名呢?

论坛徽章:
0
5 [报告]
发表于 2014-09-26 16:47 |只看该作者
回复 4# bulletmarquis

看了网上的案例,也是用的双引号啊,我刚才试了单引号,还是同样的错误。


   

论坛徽章:
24
申猴
日期:2014-10-10 15:56:39射手座
日期:2014-10-10 15:57:18黑曼巴
日期:2018-05-14 11:05:122016科比退役纪念章
日期:2018-05-14 11:05:0715-16赛季CBA联赛之北控
日期:2018-05-14 11:05:0015-16赛季CBA联赛之江苏
日期:2017-02-27 18:11:0715-16赛季CBA联赛之上海
日期:2018-08-15 09:48:5415-16赛季CBA联赛之佛山
日期:2018-07-20 17:14:2315-16赛季CBA联赛之佛山
日期:2019-09-10 18:08:4615-16赛季CBA联赛之山西
日期:2020-03-26 09:40:5115-16赛季CBA联赛之佛山
日期:2020-05-08 09:03:54
6 [报告]
发表于 2014-09-26 17:01 |只看该作者

论坛徽章:
0
7 [报告]
发表于 2014-09-26 17:32 |只看该作者
回复 6# chengchow

我的mysql错误提示不是mysql版本不支持这个命令啊,应该不是这个问题引起的把?如果是,怎么判断苹果电脑上安装的mysql默认是否支持local-infile

我在mysql连接命令上,是含有 --local-infile=1 这个选项的。


   

论坛徽章:
1
处女座
日期:2014-09-18 16:18:00
8 [报告]
发表于 2014-09-26 18:27 |只看该作者
回复 7# tahaomei
delimiter //
create database IF NOT EXISTS dbname;
use dbname;
create table IF NOT EXISTS tablename
(
   id int not null auto_increment primary key,
   code int(6) not null,
   name varchar(40) not null
)
comment='股票代码及名称表'
engine=InnoDB;

load data local infile "/Users/macair/stock/dat/sha.txt" into table tablename fields terminated by ';' lines terminated by '\r\n';
//

   

论坛徽章:
0
9 [报告]
发表于 2014-09-26 18:30 |只看该作者
本帖最后由 tahaomei 于 2014-09-26 18:33 编辑

回复 8# Kasiotao

啥意思?和我的没任何区别啊?我的错误在哪里呢?

按照您的,上下加上 delimiter // 和 // 了,还是一样的错误。


   

论坛徽章:
1
处女座
日期:2014-09-18 16:18:00
10 [报告]
发表于 2014-09-26 18:38 |只看该作者
回复 9# tahaomei

tablename后面不能有括号把 我没用过这个语法你 去掉试试
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP