2016-02-29 53 views
0

我試圖通過「瞭解SQL難以解決的難題」來學習SQL,並且遇到了命令提示符的困難。特別是,我遇到了3rd exercise的問題。SQLite不打印

我能夠通過調用

sqlite3 ex3.db < ex2.sql 

這應該建立一個與模式的數據庫,以創建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 
); 

調用.schema上的sqlite3 ex3.db打印出來正是這個。

然後我用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; 

它仍然什麼都沒有顯示。我的猜測是,數據庫文件沒有更新,我的安裝出了問題,或者我把這裏的其他東西搞亂了。感謝任何可以給予的幫助。

+0

如果你執行'sqlite3 ex3.db JCollerton

+0

什麼都沒有。它跳過一行然後進入下一個提示。 – NvgtrWiggles

+0

打開'ex3.sql',它是否仍然有你的命令? – JCollerton

回答

1

命令:

sqlite3 -echo ex3.db < ex3.sql

用於打印,因爲它執行的是在ex3.sql文件。如果沒有顯示任何內容,則文件中不會有任何內容!這意味着它將是ex3.sql文件的問題,因此它不是空的就是已損壞。