タグ

ブックマーク / sfnovicenotes.blogspot.com (2)

  • SQLite3でUpsertを実行する

    似たような処理にreplaceがあるが、 replaceはレコード(行)を丸ごと入れ替える(delete/insert)のに対し、 upsertはカラムを指定してレコードを更新する。 SQLite3 でレコードがあれば置換、なければ新規挿入する (replace) 公式 によると PostgreSQL の構文を利用しているとのこと。 Microsoft SQLServer や Oracle の「merge(マージ)」構文に近い使い方だが mergeは重複の判定にUniqueカラム以外のものを指定できたりする。 実行例 「upsert」というコマンドがあるわけではなく、 on conflict文を使い キーが重複した場合の処理を指定することができる。 on conflict文は sqlite のバージョン3.24.0 から利用可能。 環境 Windows 10 sqlite3 (3.24.0

  • SQLite3 TSVデータを取り込む、TSVデータを出力する

    コマンドラインツール コマンド一覧 概要 テキストデータであるTSVファイルをSQLite3に入力/出力させる方法。 コマンドラインツールから利用する。 自作のスクリプトでテキストを読込/出力、DBに接続してinsert/selectをやるよりはるかに簡単。 取り込む処理はインポート・バルクロード、出力する処理をエクスポートと言ったりする。 TSVのフォーマットについて IANAによってMIMEタイプ tsv/tab-separated-values として定義されている。 http://www.iana.org/assignments/media-types/text/tab-separated-values フィールド(列)はTABで区切る レコード(行)は改行で区切る 各行のTABの数は同じでなければならない といったところ。 構文 TSVファイルのインポート .mode tab .

  • 1