我正在尝试通过“学习SQL艰难的方式”来学习SQL,而我在命令提示符时遇到了困难。特别是,我遇到了3rd exercise的问题。
我可以通过调用
从ex2.sql创建一个数据库sqlite3 ex3.db < ex2.sql
这应该使用架构构建数据库:
CREATE TABLE person (
id INTEGER PRIMARY KEY,
first_name TEXT,
last_name TEXT,
age INTEGER
);
CREATE TABLE pet (
id INTEGER PRIMARY KEY,
name TEXT,
breed TEXT,
age INTEGER,
dead INTEGER
);
CREATE TABLE person_pet (
person_id INTEGER,
pet_id INTEGER
);
在sqlite3 ex3.db上调用.schema会打印出来。
然后我使用ex3.sql,其内容为:
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);
我通过说:
插入到ex3.dbsqlite3 -echo ex3.db < ex3.sql
根据这本书,这应该将ex3.sql中的值插入ex3.db,同时打印出它正在做的事情。但是,当我将上面的内容键入cmd时,它什么都不打印。当我打电话时
sqlite3 ex3.db
select * from person;
它仍然没有显示任何内容。我的猜测是数据库文件没有更新,我的安装出错了,或者我在这里乱搞别的东西。感谢任何可以给予的帮助。
答案 0 :(得分:1)
命令:
sqlite3 -echo ex3.db < ex3.sql
用于打印执行时ex3.sql
文件中的内容。如果没有显示任何内容,则文件中不会有任何内容!这意味着它将是ex3.sql
文件的问题,因此它是空的或损坏的。