引数を省略すれば全てのテーブルやインデックスのスキーマ情報を表示します
SQLiteの起動や終了に必要な基本的なコマンド 起動コマンド sqlite3 データベース名.db
シェルなどの外部プログラムから実行する場合は、以下のようにDBファイルに対して、SQLファイルをリダイレクトするような感じで実行する。 # sqlite3 sample.db < test.sql
SQLiteは日付時刻をUTCとして保持する。
SQLiteにはデータ型としての日時型はありません。
今更な内容ではありますが、分かりやすくまとめたかったのと、よそにあった情報で気になった部分を修正して書きたいと思います。
sqlite のバージョン3.33.0 から利用可能。
last_insert_rowid 関数を使うとテーブルに最後に追加されたデータの ROWID を取得することができます。
REPLACE構文は、UNIQUE制約/主キーのダブりでINSERTが失敗した場合、邪魔になったレコードを削除してから新しくINSERTしようとします。これだと、AUTO INCREMENTなキー列の値が変わってしまいます。
INSERT OR REPLACE INTO文を用いることで、SQLite3でUPSERTを実現できます。
問題回避手法はsqlite_sequenceよりもアルファベットで前に来るダミーのテーブルに、オートインクリメントを設定するというものです。このテーブルは以降使われません。なお、このコードをコメントすると、バックアップの取得時に以下のようなエラーが出ますので、ここに残しておきます。
$ brew install sqlitebrowser
copy /Y $(ProjectDir)lib\SQLite.Interop.dll $(TargetDir)