当我在终端中输入代码时,它会创建数据库,但不会创建表。当我输入“ locations”然后输入“ Show TABLES”时,它告诉我没有创建表。此代码应创建一个数据库,然后将该表导入csv文件到数据库“位置”
mysql -u root --password=password -e
"CREATE DATABASE locations;"
"CREATE TABLE location_T (number1 INT NOT NULL,
number2 INT NOT NULL,
number3 INT NOT NULL,
names VARCHAR(100) NOT NULL,PRIMARY KEY (number1));"
LOAD DATA LOCAL INFILE 'locations.csv'
INTO TABLE overview FIELDS TERMINATED by '\t'
ENCLOSED BY '"'LINES TERMINATED BY '\n' "(number1,number2,number3,names)"
我什至尝试使用文件的绝对路径。
这是csv文件
number1 number2 number3 names
50 15 16 john
45 20 40 lauren
23 90 22 james
46 21 16 jonathan
有人知道我在做什么错吗?我正在使用csh。
这里是完整答案,基于@Honeyboy的评论。
除了需要USE locations;
之外,还需要解决其他一些问题:
CREATE TABLE
语句和LOAD DATA
语句之间更改LOAD DATA
语句没有忽略制表符分隔文件的标题行。mysql -u root --password=password -e \
'CREATE DATABASE locations; \
USE locations; \
CREATE TABLE location_T (number1 INT NOT NULL, \
number2 INT NOT NULL, \
number3 INT NOT NULL, \
names VARCHAR(100) NOT NULL,PRIMARY KEY (number1)); \
LOAD DATA LOCAL INFILE "locations.csv" \
INTO TABLE location_T FIELDS TERMINATED by "\t" \
ENCLOSED BY "\"" LINES TERMINATED BY "\n" IGNORE 1 LINES \
(number1,number2,number3,names)'