MySQLでsp_helpのようにフィールド型や制約を表示するには?SHOW CREATEコマンドの使い方
MySQLでsp_help相当の情報を取得するには?
SQL Serverのsp_helpに相当する機能は、MySQLではSHOW CREATEコマンドで実現できます。このコマンドを使えば、テーブルのフィールド(カラム)のデータ型や、主キー・一意キーなどの制約情報をまとめて確認できます。
ケース1:テーブルの場合
テーブルの定義を表示する基本構文は次の通りです。
SHOW CREATE TABLE テーブル名;
ケース2:ストアドプロシージャの場合
ストアドプロシージャの定義を表示する基本構文は次の通りです。
SHOW CREATE PROCEDURE プロシージャ名;
サンプルテーブルを作成する
まず、動作確認用として次のようなテーブルを作成しましょう。
mysql> create table DemoTable
(
EmployeeId int NOT NULL AUTO_INCREMENT,
EmployeeFirstName varchar(40) NOT NULL,
EmployeeLastName varchar(40) NOT NULL,
EmployeeAge int,
EmployeeCountryName varchar(40),
EmployeeCityName varchar(40),
PRIMARY KEY(EmployeeId),
UNIQUE KEY(EmployeeFirstName,EmployeeCityName)
);
Query OK, 0 rows affected (0.97 sec)
SHOW CREATE TABLEを実行する
作成したテーブルに対して、先ほど紹介した構文を実行します。
mysql> SHOW CREATE TABLE DemoTable;
このコマンドを実行すると、次のようにフィールド名・データ型・NULL許容属性、さらにPRIMARY KEYやUNIQUE KEYなどの制約を含んだ完全なCREATE TABLE文が出力されます。
CREATE TABLE `demotable` ( `EmployeeId` int(11) NOT NULL AUTO_INCREMENT, `EmployeeFirstName` varchar(40) COLLATE utf8_unicode_ci NOT NULL, `EmployeeLastName` varchar(40) COLLATE utf8_unicode_ci NOT NULL, `EmployeeAge` int(11) DEFAULT NULL, `EmployeeCountryName` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, `EmployeeCityName` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`EmployeeId`), UNIQUE KEY `EmployeeFirstName` (`EmployeeFirstName`,`EmployeeCityName`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 1 row in set (0.03 sec)
補足:カラム情報だけを簡潔に確認したい場合
テーブル定義全体ではなく、各カラムの型やNULL許容のみを手軽に確認したい場合は、DESCRIBE文やSHOW COLUMNS FROM文も便利です。目的に応じてこれらのコマンドを使い分けると、開発やデバッグの作業効率が向上します。
-
MySQLで別テーブルの主キーを外部キーとして参照する方法をわかりやすく解説
MySQLでは、あるテーブルの主キー(PRIMARY KEY)を、別のテーブルの外部キー(FOREIGN KEY)として参照することで、テーブル間にリレーション(関連付け)を構築できます。これによりデータの整合性が保たれ、参照先に存在しない値の登録を防ぐことができます。外部キー制約を追加する基本構文既存のテーブルに対して外部キー制約を追加するには、ALTER TABLE文を使用します。基本的な構文は以下のとおりです。alter table yourSecondTableName add constraint `yourConstraintName` foreign key(`yourSecon
-
MySQLで外部キー(FOREIGN KEY)を使う方法|InnoDBの制約とALTER構文を解説
本記事では、MySQLにおける外部キー(FOREIGN KEY)の基本的な考え方と、実際の設定方法をサンプルSQL付きで解説します。 MySQLの外部キーの基本 InnoDBテーブルは、外部キー制約(FOREIGN KEY制約)のチェックをサポートしています。ただし、単に2つのテーブルを結合(JOIN)するだけであれば、外部キー制約は必須ではありません。外部キーは、テーブル間の参照整合性を保証したい場合に活用する仕組みです。 一方で、InnoDB以外のストレージエンジンを使用している場合は注意が必要です。REFERENCES tableName(colName) という構文を記述しても実際の効