ど素人から毛を生やす。<延>

[MySQL]プライマリキーとユニークキーを取得する。

Web > Other 2018年8月3日(最終更新:6年前)

2018年8月3日に作成されたページです。
情報が古かったり、僕が今以上のど素人だった頃の記事だったりする可能性があります。

どもです。
MySQLにて。

ユニークキーに設定されているカラム情報を抜き出す、という動作の需要がありまして。
ちょいと覚えておきたい内容だったので、備忘録しときます。

SHOW INDEX FROM テーブル名

これで、そのテーブルのインデックス回りの情報が抜き出せます。
SHOW INDEXのリファレンスはこちら

SHOW INDEXは、インデックスを構成する1カラムごとで1行を構成します。
つまりインデックスを貼っていたり、プライマリやユニークだったりするカラムだけを抜き出します。

で、注目したいのが「Key_name」「Non_unique」

「Key_name」
インデックスの名前。このインデックスが主キーである場合、その名前は常に PRIMARY です。

「Non_unique」
このインデックスが重複を含むことができない場合は 0、できる場合は 1。

つまり、
row["Key_name"] === "PRIMARY" なら、プライマリキーです。

それなら
row["Non_unique"] == 0 なら、ユニークキー?

広義的にはそうなのですが、プライマリキー⊆ユニークキーなので、この場合はプライマリキー&ユニークキーになります。

ユニークキーだけを取りたい場合は、
row["Non_unique"] == 0 && row["Key_name"] !== "PRIMARY"

完遂。(*'ω'*)

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった (0)
  • (・∀・) 参考になった (0)
  • (`・ω・´) 役に立った (0)