将数据从文本文件加载到数据库中的表中

时间:2012-12-08 22:32:58

标签: mysql sql

有人可以告诉我这里我做错了吗首先要做一些简单的事情我首先用外键创建一些表,然后尝试从文本文件中导入数据,并且在没有得到数据的情况下有各种错误现在我试着只是创建表加载数据然后添加外键希望这可以工作但它不是继承人我做了什么

create table Books (
ISBN Char(10) not null,
Title Varchar(50) not null,
Price Decimal(5,2) null,
Authors Varchar(50) null,
Pages int null,
PubYear int null,
QTY int null,
Constraint Books_PK primary key(ISBN)
);



create table customers (
customerid int not null,
company varchar(30) null,
firstname varchar(30) null,
lastname varchar(30) null,
street varchar(50) null,
city varchar(30) null,
state char(2) null default 'NE',
zip char(5) null,
phone char(10) null,
constraint customer_pk primary key(customerid)
);

create table orders (
orderid int not null,
customerid int not null,
orderdate date null,
shipdate date null,
shipping decimal(5,2) null,
salestax decimal(5,2) null,
constraint order_pk primary key(orderid)
);

create table orderinfo (
orderid int not null,
isbn char(10) not null,
qty int not null,
price decimal(5,2) not null,
detailid int not null auto_increment,
constraint orderinfo_pk primary key(detailid)
);

load data infile 'C:/lab8/books.txt
into table books;

它给我一个错误,说数据太长了第1行

文本文件的内容是

0929306279,  Bell labs,  29.95,  Gehani,  269,  2008,  121
0929306260,  Java,  49.95,  Sahni & Kumar,  465,  2008,  35
0670031844,  White Mughals,  34.95,  Dalrymple,  459,  2008,  78
0439357624,  Born Confused,  16.95,  Hidier,  432,  2007,  11
显然,ISBN是10个字符,为什么不进入表格?

1 个答案:

答案 0 :(得分:2)

如果您有,作为分隔符,则必须这样说。

load data infile 'C:/lab8/books.txt'
into table books
fields terminated by ',';

根据LOAD DATA INFILE Syntax,默认为制表符\t

  

如果您未指定FIELDS或LINES子句,则默认值与您编写此内容时的默认值相同:

     

由''''''''''''''''''''''''''''''''''   由'\ n'开始''终止的线路

相关问题