列の数と値の数が合わない行
列が 2 つなのに、値が 1 つしかない INSERT の例です。値は列と左から順に対応するため、数が合わない行をエラーにして除くことを確かめます。
入力
SQL
INSERT INTO t (a, b) VALUES (1)
NULL の書き方
空欄にする
結果
エラー 1 件・警告 0 件・情報 0 件
指摘(エラー・警告・情報)
- エラー 1 行目 この行の値は 1 個ですが、列は 2 個です。値は列の並びと左から順に対応します(INSERT 文書)。この行は CSV に含めませんでした。
| 表名 | t |
|---|---|
| データ行数 | 0 行 |
| 列数 | 2 列 |
| INSERT 文の数 | 1 個 |
復元した CSV
a,b
検算(この結果になる理由)
値は明示した列と左から順に対応するため(INSERT 文書)、列 2 つに値 1 つでは対応が崩れます。この行は CSV に含めず、エラーが 1 件出ます。出力は見出し行の a,b だけです。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- リテラルの値だけを読みます。関数呼び出し・計算式・型変換(::)を含む値と、INSERT ... SELECT・DEFAULT VALUES は判定不能で、その欄は空にします。
- 列名のリストを省略した INSERT は、見出しを col1・col2 … にします。実際の列名は表の定義がないと分かりません。
- 表または列の並びが最初の INSERT と違う文は、1 つの CSV にできないため含めません。
- 改行は LF(\n)で出力します。RFC 4180 は CRLF ですが、多くの表計算ソフトは LF も読み込めます。
ご利用にあたって
- 結果は字句の読み取りにもとづく確認で、実際のデータベースでの解釈を保証するものではありません。
- ドキュメントは PostgreSQL License で公開されています。このサイトはその内容を要約して参照しており、転載はしていません。