3

これは私がオンラインで取っているSQLクラスです。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.

レッスンに誤りはありませんか?彼がユーザーに ex3.sql ファイルを作成するように依頼したことはないと思いますか?

これがタイプミスだと仮定して、ex2.sql を使用するように echo ステートメントを変更しました。これは、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 ファイルを作成する必要がありましたか?

4

1 に答える 1

3

ex3.sqlエラー メッセージは、が見つからなかったことを伝えようとしていました。

古いex2.sqlファイルを使用してテーブルを作成し、新しいINSERTステートメントをに配置することになっていex3.sqlます。

于 2013-10-02T21:36:34.173 に答える