2016-02-29 1 views
0

Я пытаюсь изучить SQL через «Learn SQL the Hard Way», и у меня возникают трудности с командной строкой. В частности, у меня возникают проблемы с 3rd exercise.SQLite не печатает

Я могу создать базу данных с 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 
); 

Calling .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, так что он либо пуст, либо поврежден.

Смежные вопросы