注文表に、顧客表にない顧客 ID が 2 件

顧客 3 件の表と、顧客 ID を持つ注文 5 件の表で、顧客 ID が 4 と 5 の注文は顧客表にない例です。顧客 ID が空欄の注文は NULL として除きます。

入力

親の CSV(例: 顧客一覧)

id,name
1,東京
2,大阪
3,名古屋

子の CSV(例: 注文一覧)

order_id,customer_id
100,1
101,4
102,
103,2
104,5

親の 1 行目は見出し

はい

子の 1 行目は見出し

はい

親のキーの列(左から何列目か)

1

子の参照列(左から何列目か)

2

「NULL」という文字も NULL とみなす

はい

結果

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

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

  • 警告 子 3 行 親に存在しないキー「4」を子の行が持っています。孤児レコードです。親に追加するか、子のキーを直してください。
  • 警告 子 6 行 親に存在しないキー「5」を子の行が持っています。孤児レコードです。親に追加するか、子のキーを直してください。
  • 情報 全体 子のキーが空欄 または NULLの行(1 行)は NULL とみなし、検査から除きました。PostgreSQL の既定の外部キー(MATCH SIMPLE 相当)では、参照列が NULL の行は制約を満たさなくてよいとされています。
親の行数3 行
子の行数5 行
孤児レコード2 行
NULL で検査対象外1 行

孤児レコードの一覧

孤児レコードの一覧
子の行親に無いキー子の行の内容
34101 | 4
65104 | 5

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

親のキーは 1・2・3 です。注文 100 の顧客 1 と注文 103 の顧客 2 は存在します。注文 101 の顧客 4 と注文 104 の顧客 5 は親にないので孤児で、注文 102 の顧客 ID は空欄で NULL として検査から外れます。孤児は 2 行です。

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

このツールの制約

ご利用にあたって

  • 孤児レコードの有無は、貼り付けた 2 つの CSV の範囲だけの結果です。データベース全体の整合性は、取り込み後の外部キー制約で確かめてください。
  • 顧客情報などを含む場合でも、ブラウザの外には送信されません。画面の共有やスクリーンショットにはご注意ください。

ほかの入力例