mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

MariaDB, MySQL - 複合プライマリキーを持つテーブル一覧!

[ サーバ構築 ] [ MariaDB, MySQL ]

こんばんは。

MariaDB や MySQL 等の RDB で、プライマリキー(主キー)を複数のカラムに設定することはよくあります。

しかし、複合プライマリキーをサポートしていないアプリもあったりします。(自分の知る限りでは、 Rails の ActiveRecord がそう)

以下、複合プライマリキーが設定されているテーブルの一覧を確認する方法についての備忘録です。

0. 前提条件

  • MariaDB 10.1.19 での作業を想定。(MySQL 5.7 系での動作も確認済み。その他も、問題ないはず(おそらく))

1. SQL 文

以下のような SQL 文を実行すればよい。それだけ。
(以下の scheme_name を対象のスキーマ名に変更する)

1
2
3
4
5
6
  SELECT TABLE_NAME, COUNT(*) AS cnt
    FROM information_schema.KEY_COLUMN_USAGE
   WHERE CONSTRAINT_SCHEMA = 'scheme_name'
     AND CONSTRAINT_NAME = 'PRIMARY'
GROUP BY TABLE_NAME
  HAVING cnt > 1;

当然、最終行の cnt > 1 を変更することでプライマリキーに設定されているカラム数別に一覧を出力することもできる。


以上、

Comments