CSV行をデータベースに入れる
スプレッドシートの出力があり、テーブルにseedするINSERT文が必要です。クォートとNULLを正しく処理する早い方法です。
このガイドで使う道具
やりたいこと
開発DBのseedや小さなマスタ表の移行は、行をINSERTに変換する作業です。手でやると'O'Brienのアポストロフィが行を静かに壊す、定番のバグを踏みます。
変換方法
CSVを貼り、テーブル名を設定して実行します。先頭行が列名になり、数値に見える値はクォートなし、それ以外は''エスケープ付きでシングルクォート、空セルは既定でNULLになります。バッチサイズは大きいデータ向けに1INSERTあたりの行数を調整します。
- ヘッダなし: column1, column2…という列名を出力で改名できます。
- 区切りはカンマ・セミコロン・タブを自動判定します。
具体例
name,city,rateと2行のデータからINSERT INTO customers (name, city, rate) VALUES ('Ada''s Bakery', 'London', 4.5), ('Grace', NULL, 3);が出ます。アポストロフィは''として残り、空セルはNULL、数値は数値のままです。
対応範囲
素のVALUES INSERTのみで、CREATE TABLE・ON CONFLICT・方言構文は出しません。大事な環境へ流す前に文を必ず確認してください。30万文字・2万行まで。