我使用命令创建了表:
CREATE TABLE genre(
genre_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL
);
然后我使用命令填充表格数据:
load data infile 'D:/MySQL/.../genres.txt' into table genre(name);
每一行都有一条记录。
当我尝试使用以下命令将表的内容打印到终端时出现问题:
select * from genre;
输出:
+----------+--------------+
| genre_id | name |
+----------+--------------+
| 1 | alternative
| 2 | blues
| 3 | classic
| 4 | country
| 5 | dance
| 6 | electro
|7 | folk
| | pop
| | rap
|0 | jazz
| 11 | latino
|12 | opera
| | r&b
| 14 | reagge
|5 | rock
| 16 | metal |
|
+----------+--------------+
(竖条也打印错误)
有谁知道为什么第一列的输出打印错了?我是mysql初学者,很抱歉,如果这是一个愚蠢的问题。
文件内容:
alternative
blues
classic
country
dance
electro
folk
pop
rap
jazz
latino
opera
r&b
reagge
rock
metal
答案 0 :(得分:1)
评论太长了。
列genre_id
自动递增。因此,当一行插入表中时,该列将获得一个值。就这么简单。
您似乎拥有没有genre_id的行。这是不可能的。该列声明为整数,不能采用NULL
值。因此,您会看到每个插入行的一些值。
结论是看起来缺少genre_id
的行实际上根本不是单独的行。相反,它们是具有嵌入换行符或回车符的单行,这些字符会使输出变得混乱。如果您使用的是基于Unix的系统,则可以使用od
(八进制转储)查看文件的内容。可能有一些正确的行终止符可以解决问题。