0

私はSQL の本を読んでいて、著者は Sqlite3 を使用しています。

本の中で、著者は次のように入力するように言っています。

sqlite3 -echo something.db < some.sql

問題は、何も端末にエコーアウトされず、'<' リダイレクト コマンドから作成されたデータベースさえないことです。

これで何が起こっているか知っている人はいますか?

4

3 に答える 3

0

something.db既存のデータベースです。< some.sqlそのファイルからデータを取得し、sqlite コンソールに書き込むことを意味します。したがって、両方のファイルが存在する必要があります。

something.db有効な l sqlite3 データベース ファイル (または空または存在しないファイル) である必要があります。some.sqlコマンドを含むテキスト ファイルである必要があります。

パラメータは、-echo実行前にコマンドを出力する必要があることを指定します。

于 2013-02-20T05:38:24.653 に答える
0

実際、あなたが示したコマンドは、SQL ダンプから新しいデータベースを作成する適切な方法です。

SQL ファイルの内容 ( ) を表示していただけますcat some.sqlか? 説明されている動作を再現できる唯一の方法は、sqlite に空の sql ファイルを供給することです。

次のコマンドを試して、同じ結果が得られるかどうかを確認してください。

$ cat <<EOF > test.sql
> create table test1 (f1, f2, f3);
> insert into test1(f1, f2, f3) values ("foo", "bar", "baz");
> EOF
$ sqlite3 -echo test.db < test.sql
create table test1 (f1, f2, f3);
insert into test1(f1, f2, f3) values ("foo", "bar", "baz");
$ file test.db
test.db: SQLite 3.x database
于 2013-02-20T05:56:26.213 に答える