mysql - 从命令行 Mysql 创建表时出现问题

标签 mysql csv csh load-data-infile

当我在终端中输入代码时,它会创建数据库,但不会创建表。 当我输入 use“locations”然后输入“Show TABLES”时,它告诉我没有创建任何表。 此代码应创建一个数据库和表,然后将 csv 文件导入到数据库“locations”

最佳答案

这是基于@Honeyboy 评论的完整答案。

除了需要使用位置之外,还有一些其他问题需要修复:

  • Shell 引用并不完全正确。一方面,您现有的代码不考虑换行符 - 它需要行继续转义才能按编写的方式运行。
  • 表的名称在 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)'

关于mysql - 从命令行 Mysql 创建表时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58770622/

相关文章:

linux - 无法在 .cshrc 中获取脚本源

matlab - 从matlab中的CSV文件中读取特定列

arrays - 如何在bash中从csv转换为数组

linux - 简单的 sed 替换

mysql - 使用子查询在mysql中进行多次更新

php, isset - 默认值,可以简化吗?

mysql - 根据相同的 ID 从两个表中选择所有内容

mysql - 如果表中的行数很大(200 万),NDB cluster7.5(MySQL 5.7)在获取数据时会花费更多时间

c# - 将对象转换为 CSV 字符串

python - 从 Python 中创建并执行 tcsh 脚本