CSV の主キー候補のチェック
CSV のどの列を主キーにできるか、行から確かめる。
CSV を貼り付けるかファイルを選ぶと、値が重複せず空欄もない列(主キー候補)と、1 列では足りないときの列の組み合わせを一覧にします。判定はその CSV の行だけでの結果です。データはブラウザの外へ送信しません。
CSV の主キー候補を探す
入力した内容は送信されません。貼り付けた文字や選んだファイルは、お使いのブラウザの中だけで処理します。本サイトのサーバーや第三者へ送信・保存しません(通信を禁止する設定でページを配信しています)。
結果
エラー 0 件・警告 0 件・情報 1 件
指摘(エラー・警告・情報)
- 情報 全体 この CSV の行だけでの判定です。行が増えると重複や空欄が現れることがあります。値の比較は完全一致で、前後の空白・大文字小文字・全角半角の違いは別の値として数えます。主キーにしてよいかは、データの意味(将来も重複しないか)で決めてください。
| データの行数 | 3 行 |
|---|---|
| 列数 | 3 列 |
| 単独で候補の列 | id |
| 列の組で候補 | 1 組 |
| 判定に含めなかった行 | 0 行 |
列ごと・列の組ごとの判定
| 種類 | 列 | 異なる値の数 | 空欄の数 | 判定 |
|---|---|---|---|---|
| 列 | id | 3 | 0 | 候補(この列だけで一意) |
| 列 | name | 2 | 0 | 重複あり(1 行) |
| 列 | dept | 2 | 0 | 重複あり(1 行) |
| 組 | name + dept | 3 | 0 | 候補(2 列の組で一意) |
初期表示は入力例「ID 列と、部署つきの組」の結果です。入力を変えるとその場で処理し直します。判定の根拠は仕様と根拠にまとめています。
ご利用にあたって
- この結果は設計の参考です。実際に表を作る前に、データの意味と将来の増え方にもとづいて主キーを決めてください。
- 大きなファイルでは、列の組を調べるのに時間がかかることがあります。そのため、調べる組の数に上限を設けています。
使い方
- CSV をテキスト欄に貼り付けるか、CSV ファイルを選びます(UTF-8 に対応)。
- 1 行目が列名なら「1 行目は見出し」に印を付けたままにします。区切り文字も合わせて選びます。
- 1 列では候補がないときは、調べる列の組の最大の列数を増やします。列の組は、最小の組だけを示します。
- 表の「判定」で、単独で候補の列・空欄のある列・重複のある列(重複する行数つき)を確認します。
入力例と結果
代表的な入力・境界の入力・壊れた入力の例です。例ごとに入力・出力・指摘と、その結果になる理由(検算)を載せています。
| 入力例 | 結果 |
|---|---|
| ID 列と、部署つきの組 | エラー 0 件・警告 0 件・情報 1 件 |
| 注文番号と明細番号の複合キー | エラー 0 件・警告 0 件・情報 1 件 |
| 空欄のある ID 列 | エラー 0 件・警告 0 件・情報 1 件 |
| 3 列でそろって一意になる組 | エラー 0 件・警告 0 件・情報 1 件 |
| 値の数が合わない行がある CSV | エラー 1 件・警告 0 件・情報 1 件 |
このツールでできないこと(制約)
- 判定はサンプルの行だけで行います。今のデータで重複がなくても、将来のデータで重複しないとは限りません。意味のある識別子(会員番号・注文番号など)かどうかで最終的に決めてください。
- 値の比較は完全一致です。前後の空白・大文字と小文字・全角と半角の違いは別の値として扱うため、取り込み先で正規化すると重複することがあります。
- 列の組は最大 3 列まで、調べる組は最大 5,000 組までです。列が多い CSV では、組の最大の列数を小さくして調べてください。
- ファイルは UTF-8 として読みます。Shift_JIS の CSV は文字化けするため、表計算ソフトで UTF-8 として保存し直してから使います。
よくある質問
候補に出た列は、そのまま主キーにしてよいですか?
いいえ。この CSV の行で重複と空欄がなかったというだけです。氏名や日付のように、データが増えると重複しうる列は主キーに向きません。ID のように重複しないと決まっている列を選んでください。
候補が 1 つもないときはどうしますか?
調べる列の組の最大の列数を増やしてみてください。それでもなければ、連番の ID 列を追加して主キーにするのが一般的です。同じ内容の行が重複していないかも確認してください。
顧客名簿などの個人情報を入れても大丈夫ですか?
判定はお使いのブラウザの中だけで行い、データをサーバーや第三者へ送信・保存しません。ページは通信を禁止する設定で配信しています。結果をコピーする際の取り扱いにはご注意ください。