Here is a SQL class I'm taking online.我想我对 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.
类(class)有错误吗?我不认为他曾经要求用户创建一个 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 文件?
最佳答案
错误消息试图告诉您找不到 ex3.sql
。
您应该使用旧的 ex2.sql
文件来创建表,并将新的 INSERT
语句放入 ex3.sql
.
关于sql - 艰难地学习 SQL - 练习 3 - 插入数据 - 找不到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19144700/