SQLite不打印

时间:2016-02-29 21:10:20

标签: sql database sqlite

我正在尝试通过“学习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.db
sqlite3 -echo ex3.db < ex3.sql

根据这本书,这应该将ex3.sql中的值插入ex3.db,同时打印出它正在做的事情。但是,当我将上面的内容键入cmd时,它什么都不打印。当我打电话时

sqlite3 ex3.db
select * from person;

它仍然没有显示任何内容。我的猜测是数据库文件没有更新,我的安装出错了,或者我在这里乱搞别的东西。感谢任何可以给予的帮助。

1 个答案:

答案 0 :(得分:1)

命令:

sqlite3 -echo ex3.db < ex3.sql

用于打印执行时ex3.sql文件中的内容。如果没有显示任何内容,则文件中不会有任何内容!这意味着它将是ex3.sql文件的问题,因此它是空的或损坏的。