会員名簿を INSERT 文にする

名前に単一引用符を含む行と、メモが空欄の行、カンマを含むメモの行がある 3 列の名簿を、全行を並べた 1 つの INSERT 文にする代表例です。

入力

CSV

id,name,memo
1,O'Brien,
2,山田,"a,b"

INSERT 先の表名

users

区切り文字

カンマ(,)

1 行目は見出し(列名)

はい

空欄の値

NULL にする

数字の値

数値として出力(先頭が 0 のものは除く)

列名・表名の大文字・小文字

小文字にする(引用符なしの名前の既定)

文の形

1 つの INSERT に全行を並べる

結果

エラー 0 件・警告 0 件・情報 0 件

指摘(エラー・警告・情報)

指摘はありません。

表名users
列数3 列
出力した行2 行
NULL にした値1 個
数値として出力した値2 個
出力しなかった行0 行

INSERT 文

INSERT INTO users (id, name, memo) VALUES
  (1, 'O''Brien', NULL),
  (2, '山田', 'a,b');

検算(この結果になる理由)

O'Brien の単一引用符は 2 つ重ねて 'O''Brien' になります(PostgreSQL 4.1.2.1)。1 行目のメモは空欄なので NULL、2 行目の "a,b" は引用符の中のカンマで 1 つの値(RFC 4180 2 節の 6)です。id は数値の形なので引用符なしです。

判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。

このツールの制約

ご利用にあたって

  • 出力した文は、本番のデータベースへ実行する前にテスト用の環境で確かめてください。表の定義(列の型・制約)に合わない値は実行時に失敗します。
  • ツール内の予約語の一覧は PostgreSQL 18 のドキュメントにもとづきます。バージョンによって予約語が異なる場合は、念のため二重引用符で囲んでください。

ほかの入力例