【MySQL】別のデータベースにあるテーブルの制約を確認する方法
MySQLでは、現在接続しているデータベース以外に保存されているテーブルに適用された制約を確認したい場合、SHOW CREATE TABLEステートメントを使用します。このステートメントを実行すると、対象テーブルの制約(PRIMARY KEY、FOREIGN KEYなど)だけでなく、テーブル作成時のCREATE TABLE文そのものも取得できるため、テーブル構造を把握するのに非常に便利です。
基本構文
SHOW CREATE TABLE db_name.table_name;
各項目の意味は以下のとおりです。
- table_name:制約を確認したいテーブルの名前
- db_name:そのテーブルが格納されているデータベースの名前
使用例
ここでは、「mysql」データベースに保存されている「arena」というテーブルの詳細情報を取得してみましょう。
mysql> Show Create table mysql.arena\G *************************** 1. row *************************** Table: arena Create Table: CREATE TABLE `arena` ( `id` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT, `Photo` blob, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 1 row in set (0.00 sec)
上記の結果セットから、「mysql」データベースに保存されている「arena」テーブルの「id」カラムにはPRIMARY KEY制約が設定されていることがわかります。また、AUTO_INCREMENTの設定やストレージエンジン(InnoDB)、文字コード(latin1)といった情報も同時に確認できます。
補足:information_schemaで制約一覧を確認する
SHOW CREATE TABLE以外にも、information_schemaを参照することで制約情報を表形式で確認できます。
SELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA = 'db_name' AND TABLE_NAME = 'table_name';
このクエリを実行すると、PRIMARY KEY、UNIQUE、FOREIGN KEYなどの制約の一覧を取得できます。CREATE TABLE文全体が必要な場合はSHOW CREATE TABLE、制約だけを一覧形式で手軽に確認したい場合はinformation_schemaの活用がおすすめです。用途に応じて使い分けるとよいでしょう。
-
MySQLで特定のデータベース内にあるビューのメタデータを確認する方法
MySQLでは、INFORMATION_SCHEMA データベース内の VIEWS テーブルを参照することで、ビューのメタデータ(ビューに関する定義情報)を確認できます。このテーブルには、ビューの定義内容や作成者、更新可否などの詳細が格納されています。ここでは、「Info」という名前のビューを例に、具体的な確認方法を見ていきましょう。ビューのメタデータを取得するクエリ以下のクエリを実行すると、「query」データベース内の「Info」というビューのメタデータを表示できます。mysql> SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_
-
MySQLで別テーブルのIDからユーザー名を取得する方法|JOINの使い方を徹底解説
MySQLでは、別々のテーブルに保存されたデータをIDをキーに関連付けて取得したい場面が多くあります。そのような場合にはJOIN(内部結合)を使うことで、複数のテーブルを結合し、目的のユーザー名を簡単に取り出すことができます。 本記事では、実際にサンプルテーブルを作成しながら、JOINクエリの書き方をステップごとに解説します。 1つ目のテーブル「demo77」を作成する まず、ユーザーID(userid)とユーザー名(username)を格納するテーブルを作成します。useridは主キーとして設定します。 mysql> create table demo77 -> (