次のコマンドを使用して、sqlite3バージョン3.7.7、UNIX 11.4.2を起動します。
sqlite3 auction.db
auction.dbはまだ作成されていません。
sqlite> auction.db < create.sql;
私にこのエラーを与えます: near "auction": syntax error
スクリプトを実行するにはどうすればよいですか?
回答:
あなたは餌にしたいcreate.sqlにしsqlite3ないSQLiteの自身の内側から、シェルから:
$ sqlite3 auction.db < create.sql
SQLiteのSQLバージョンは<ファイルを認識しませんが、シェルは認識します。
<入力リダイレクトとして理解するわけではありません。(PowerShellなど)
<SQLiteプロンプトをすぐに終了し、エラーコードをシェルに返します。.read file.sqlプロンプトはそのままにし、-init file.sql常に0を返す<ため、スクリプト作成に最適です。また、.readWindowsパスをサポートしないクロスプラットフォームとは異なります。
単純なクエリを実行してシェルスクリプトに戻るには、これがうまく機能すると思います。
$ sqlite3 example.db 'SELECT * FROM some_table;'
sqlite3 example.db 'SELECT * FROM some_table;'、エコーをパイプ処理するのではなく、だと思います
sqlite3からだけstdinでなく、最後の引数からも実行するコマンドを読み取ることを示しています。
PowerShellを使用している方
PS C:\> Get-Content create.sql -Raw | sqlite3 auction.db
.readから直接コマンドをsqlite3コマンド:sqlite3 autction.db '.read create.sql'。