目次

SQLite3

1ファイルの軽量のデータベース。アプリケーションに組み込んで利用されたりする。

セキュリティ

ファイルパーミッションに依存

REPLACE not UPSERT

SQLiteの「REPLACE INTO」1)を「UPSERT」相当と紹介する記事があるが、実際には「REPLACE INTO」は「DELETE and INSERT」に相当するので注意。

例:

tableA
*col1col2col3
ABCDEFGHI

※col1がPrimaryKey

に対して以下のSQLを発行

REPLACE INTO tableA(col1, col2, col3) VALUES ('ABC', 'DDD', 'EEE')

結果

tableA
*col1col2col3
ABCDDDEEE

次に以下のSQLを発行

REPLACE INTO tableA(col1, col2) VALUES ('ABC', 'ZZZ')

結果

tableA
*col1col2col3
ABCZZZNULL
1)
実体は“INSERT OR REPLACE”