phpMyAdminでのテーブル作成と外部キー制約(FOREIGN KEY)設定

カテゴリ:データベース編

実際のレンタルサーバーではテーブルの作成や外部キー制約などのすべての設定をphpMyAdminで実施することになります。そのためこの記事ではphpMyAdminによるテーブル作成、制約(PRIMARY KEY、FOREIGN KEY、AUTO_INCREMENT)設定の手順について解説いたします。

Noteレンタルサーバーのプラン(データベース1つのプラン)によっては最初からデータベースが作成されているものもありますが、もし作成されていない場合は作成し、phpMyAdminにログインしましょう。
ロリポップの場合

今回はSQLの副問合せとは?でサンプルとして作成したテーブル(メインとなるblogテーブルと、カテゴリーリストのcategory_listテーブルを作成し、category_idを参照キーに設定)をphpMyAdminで作成したいと思います。

今回phpMyAdminで作成するテーブル:

CREATE TABLE category_list (
    id INT PRIMARY KEY AUTO_INCREMENT,
    category VARCHAR(100) UNIQUE KEY NOT NULL
);

CREATE TABLE blog (
    id INT PRIMARY KEY AUTO_INCREMENT,
    title VARCHAR(100) NOT NULL,
    text TEXT NOT NULL,
    date DATETIME,
    category_id INT NOT NULL,
    FOREIGN KEY (category_id) REFERENCES category_list(id) ON DELETE RESTRICT ON UPDATE CASCADE
);

テーブルの作成

phpMyAdminにログインし左ペインでデータベースを選択すると [構造] タブ内に [テーブルを作成] という項目があります。category_listテーブルから作成するため、名前にcategory_list、カラム数に2を指定して [実行] をクリックします。

category_listテーブルはカテゴリーの参照先となるテーブルであるため、カラムはシンプルにidcategoryのみです。以下のようにデータ型を設定します。

照合順序は恐らくレンタルサーバー側の初期設定でutf8_general_ciになっていると思いますが、念のため文字列型であるcategoryカラムでutf8_general_ciを選択しておきます。

idは主キーになるため、インデックス欄でPRIMARYを選択します。また自動インクリメントさせるため、A I欄もチェックを入れておきます。 これで [保存する] をクリックして作成しましょう。

次はメインとなるblogテーブルの作成です。 先程と同様に [構造] タブ内の [テーブルを作成] からblogテーブルを作成します。カラム数は5つです。

以下のようにカラムを設定します。

idは主キー、category_idはcategory_listテーブルのidを参照させます。titleはブログの件名、textはブログ本文、dateは登録日時用のカラムです。 category_listテーブルと同様にidはインデックスでPRIMARYを選択し、A I欄をチェックします。

また、文字列型であるtitleとtextカラムの照合順序はutf8_general_ciに指定しておきます。

これで、2つのテーブルが作成されました。

外部キー制約の作成

今度は外部キー制約(FOREIGN KEY)を設定します。

まず、blogテーブルの [構造] で参照元となるcategory_idカラムを選択して [インデックス] をクリックし、インデックスを作成します。

次に [テーブルの構造] の隣りにある [Relation view] をクリックし、[Foreign key constraints] 欄で参照元カラムにcategory_id、参照先データベース(対象のデータベースを選択)、参照先テーブルにcategory_list、参照先カラムにidを指定します。

ON DELETEは初期設定のRESTRICT(削除を許可しない場合)、ON UPDATEはCASCADE(値の変更を参照元に同期させる場合)を選択します。

この状態で [保存する] をクリックすると外部キー制約が作成されます。

実行されたSQL文、作成された外部キー制約の内容を確認しておきましょう。

以上、phpMyAdminでのテーブル作成、制約(PRIMARY KEY、FOREIGN KEY、AUTO_INCREMENT)設定の手順でした。

公開日時: 2020年05月05日  10:07:22

本格的なスキルを身につける

オンラインによるWebプログラミングスクールの無料レッスンを受けてみたい方はTechAcademyの無料体験がおすすめですよ。

データベース編に戻る

「データベース編」に関するTips

「データベース編」に関するTipsはありません。

このページのトップに戻る