3

这是我在网上学习的一个 SQL 课程。我想我对 SQL 文件的设置而不是 SQL 本身感到困惑。INSERT 语句很简单。

INSERT INTO person (id, first_name, last_name, age)
    VALUES (0, "Zed", "Shaw", 37);

INSERT INTO pet (id, name, breed, age, dead)
    VALUES (0, "Fluffy", "Unicorn", 1000, 0);

INSERT INTO pet VALUES (1, "Gigantor", "Robot", 1, 1);

在我的 Windows 命令提示符下,它运行良好。

C:\SQLite> sqlite3 ex3.db < ex2.sql

在我的 ex2.sql 中,他似乎建议将第 2 课中的 CREATE 语句与 INSERT 语句结合起来创建一个新的 ex3.db。它似乎工作 - 没有错误。

然后他说运行以下语句来显示我的 INSERT 语句。

C:\SQLite> sqlite3 -echo ex3.db < ex3.sql

我没有显示 INSERT 语句,而是收到以下错误:

The system cannot find the file specified.

上课有错误吗?我认为他从未要求用户创建 ex3.sql 文件?

所以假设这是一个错字,我将 echo 语句更改为使用 ex2.sql,因为这是包含我的 INSERT 语句的文件。

使用 sqlite3 -echo ex3.db < ex2.sql 时出现以下错误

Error: near line 1: table person already exists
Error: near line 8: table pet already exists
Error: near line 16: table person_pet already exists
INSERT INTO person (id, first_name, last_name, age)
        VALUES (0, "Zed", "Shaw", 37);
Error: near line 21: PRIMARY KEY must be unique
INSERT INTO pet (id, name, breed, age, dead)
    VALUES (0, "Fluffy", "Unicorn", 1000, 0);
Error: near line 24: PRIMARY KEY must be unique
INSERT INTO pet VALUES (1, "Gigantor", "Robot", 1, 1);
Error: near line 27: PRIMARY KEY must be unique

课文有错别字吗?我是否应该自己创建一个仅包含 INSERT 语句的 ex3.sql 文件?

4

1 回答 1

3

错误消息试图告诉您ex3.sql找不到。

您应该使用旧ex2.sql文件来创建表,并将新INSERT语句放入ex3.sql.

于 2013-10-02T21:36:34.173 回答