从命令行创建表时出现问题 Mysql
Problems creating Tables from command line Mysql
当我在终端中输入代码时,它会创建数据库但不会创建 Table。
当我输入 use“locations”然后输入“Show TABLES”时,它告诉我没有创建 Tables。
此代码应创建一个数据库,然后 Table 将 csv 文件导入数据库“位置”
这是一个完整的答案,基于@Honeyboy 的评论。
除了需要 USE locations;
之外,还有一些其他问题需要解决:
- Shell 引用不太正确。一方面,您现有的代码不考虑换行符——它需要将行继续转义为所写的 运行。
- table 的名称在
CREATE TABLE
语句和 LOAD DATA
语句之间发生了变化
LOAD DATA
语句没有忽略制表符分隔文件的 header 行。
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)'
当我在终端中输入代码时,它会创建数据库但不会创建 Table。 当我输入 use“locations”然后输入“Show TABLES”时,它告诉我没有创建 Tables。 此代码应创建一个数据库,然后 Table 将 csv 文件导入数据库“位置”
这是一个完整的答案,基于@Honeyboy 的评论。
除了需要 USE locations;
之外,还有一些其他问题需要解决:
- Shell 引用不太正确。一方面,您现有的代码不考虑换行符——它需要将行继续转义为所写的 运行。
- table 的名称在
CREATE TABLE
语句和LOAD DATA
语句之间发生了变化 LOAD DATA
语句没有忽略制表符分隔文件的 header 行。
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)'