0

有人能告诉我我在这里做错了什么吗?首先我用外键创建了一些表,然后尝试从文本文件中导入数据,并且在没有输入数据的情况下出现了各种错误,所以现在我尝试了只是创建表加载数据然后添加外键希望这会起作用,但这不是我所做的

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;

它给了我一个错误,说 DATA TOO LONG FOR COLUMN ISBN IN ROW 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 个字符,为什么它不进入表格?

4

1 回答 1

2

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

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

根据LOAD DATA INFILE 语法,默认是制表符\t

如果您不指定 FIELDS 或 LINES 子句,则默认值与您编写的相同:

由 '\t' 终止的字段由 '' 封闭由 '\\' 转义 由
'\n' 终止的行由 '' 开始

于 2012-12-08T22:38:15.650 回答