MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

【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の活用がおすすめです。用途に応じて使い分けるとよいでしょう。

  1. MySQLで特定のデータベース内にあるビューのメタデータを確認する方法

    MySQLでは、INFORMATION_SCHEMA データベース内の VIEWS テーブルを参照することで、ビューのメタデータ(ビューに関する定義情報)を確認できます。このテーブルには、ビューの定義内容や作成者、更新可否などの詳細が格納されています。ここでは、「Info」という名前のビューを例に、具体的な確認方法を見ていきましょう。ビューのメタデータを取得するクエリ以下のクエリを実行すると、「query」データベース内の「Info」というビューのメタデータを表示できます。mysql> SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_

  2. MySQLで別テーブルのIDからユーザー名を取得する方法|JOINの使い方を徹底解説

    MySQLでは、別々のテーブルに保存されたデータをIDをキーに関連付けて取得したい場面が多くあります。そのような場合にはJOIN(内部結合)を使うことで、複数のテーブルを結合し、目的のユーザー名を簡単に取り出すことができます。 本記事では、実際にサンプルテーブルを作成しながら、JOINクエリの書き方をステップごとに解説します。 1つ目のテーブル「demo77」を作成する まず、ユーザーID(userid)とユーザー名(username)を格納するテーブルを作成します。useridは主キーとして設定します。 mysql> create table demo77 -> (