仕様と根拠

候補の条件

PostgreSQL では PRIMARY KEY は UNIQUE と NOT NULL を合わせた制約で、値が重複せず、空(NULL)もない列または列の組が対象です。このツールは、すべての行で値が互いに異なり、空欄が 1 つもない列を単独の候補とします。

列の組の見つけ方

単独では候補にならない列のうち、空欄のない列どうしを組み合わせ、組の値がすべての行で互いに異なるものを候補とします。単独の候補の列を含む組や、小さな組が候補なのにそれを含む大きな組は示しません。調べる組は最大 5,000 組までです。

判定の限界

判定はこの CSV に含まれる行だけで行います。行が少ないと、意味のない列も偶然に重複しないため候補になります。氏名のように将来重複しうる列も、今の行で重複がなければ候補と表示されます。主キーにしてよいかは、データの意味で決めてください。

根拠にした仕様・資料

仕様・資料と確認日
仕様・資料確認日使った箇所
PostgreSQL ドキュメント CREATE TABLE2026年10月28日PRIMARY KEY は UNIQUE と NOT NULL を合わせた制約。値は重複せず空でない
RFC 4180 Common Format and MIME Type for Comma-Separated Values (CSV) Files2026年10月28日2 節の 3〜7(見出しの行・各行の値の数・二重引用符の囲みと "" のエスケープ)

指摘の段階

入力の扱い(送信しない仕組み)

処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。

このツールでできないこと(制約)

ご利用にあたって

  • この結果は設計の参考です。実際に表を作る前に、データの意味と将来の増え方にもとづいて主キーを決めてください。
  • 大きなファイルでは、列の組を調べるのに時間がかかることがあります。そのため、調べる組の数に上限を設けています。