MySQLでテーブルを作成するときに外部キーを設定するにはどうすればよいですか?

青灯夜游
リリース: 2020-10-07 12:15:15
オリジナル
22944 人が閲覧しました

テーブル作成時に外部キーを設定する Mysql メソッド: "CREATE TABLE" ステートメントで、"[CONSTRAINT >] FOREIGN KEY フィールド名 [, フィールド名 2,...] を渡します。 REFERENCES 」主キー列 1 [,主キー列 2,...]」ステートメントの設定。

MySQLでテーブルを作成するときに外部キーを設定するにはどうすればよいですか?

MySQL 外部キー制約 (FOREIGN KEY) はテーブルの特別なフィールドであり、多くの場合主キー制約と一緒に使用されます。関連付けられた 2 つのテーブルの場合、関連付けられたフィールドの主キーが配置されているテーブルが主テーブル (親テーブル) となり、外部キーが配置されているテーブルが副テーブル (子テーブル) になります。

テーブルの作成時に外部キー制約を設定する

CREATE TABLE ステートメントで、FOREIGN KEY キーワードを使用して外部キーを指定します。構文形式は次のとおりです。

[CONSTRAINT <外键名>] FOREIGN KEY 字段名 [,字段名2,…] REFERENCES <主表名> 主键列1 [,主键列2,…]
ログイン後にコピー

Example

テーブル間の外部キー関係を示すために、この例では、test_db データベースに部門テーブル tb_dept1 を作成します。構造は下表の通りです。

#フィールド名 データ型 備考 id name location tb_dept1 を作成する SQL ステートメントと実行結果は次のとおりです。以下のように表示します。
# #INT(11) 部門番号
VARCHAR(22) 部門名
VARCHAR(22) 部門の場所
mysql> CREATE TABLE tb_dept1 -> ( -> id INT(11) PRIMARY KEY, -> name VARCHAR(22) NOT NULL, -> location VARCHAR(50) -> ); Query OK, 0 rows affected (0.37 sec)
ログイン後にコピー

データ テーブル tb_emp6 を作成し、テーブル tb_emp6 に外部キー制約を作成して、そのキー deptId が外部キーとしてテーブル tb_dept1 の主キー ID に関連付けられるようにします。SQL ステートメントと実行中結果は以下の通り。

mysql> CREATE TABLE tb_emp6 -> ( -> id INT(11) PRIMARY KEY, -> name VARCHAR(25), -> deptId INT(11), -> salary FLOAT, -> CONSTRAINT fk_emp_dept1 -> FOREIGN KEY(deptId) REFERENCES tb_dept1(id) -> ); Query OK, 0 rows affected (0.37 sec) mysql> DESC tb_emp6; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(25) | YES | | NULL | | | deptId | int(11) | YES | MUL | NULL | | | salary | float | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 4 rows in set (1.33 sec)
ログイン後にコピー

上記のステートメントが正常に実行されると、fk_emp_dept1 という名前の外部キー制約がテーブル tb_emp6 に追加されます。外部キー名は deptId で、テーブル tb_dept1 の主キー ID に依存します。

注: セカンダリ テーブルの外部キーはプライマリ テーブルの主キーに関連している必要があり、主キーと外部キーのデータ型は一貫している必要があります。たとえば、両方とも INT 型であるか、両方とも CHAR 型です。このような要件が満たされていない場合、スレーブ テーブルの作成時に「ERROR 1005 (HY000): Can't create table」エラーが発生します。

推奨チュートリアル:

mysql ビデオ チュートリアル

以上がMySQLでテーブルを作成するときに外部キーを設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!