「ALTER TABLE」ステートメントと「FOREIGN KEY」キーワードを使用して、mysql に外部キーを追加できます。構文は「ALTER TABLE テーブル名 ADD CONSTRAINT 外部キー名 FOREIGN KEY (列名) REFERENCES mainテーブル名(列名) ;"。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
MySQL 外部キー制約 (FOREIGN KEY) はテーブルの特別なフィールドであり、主キー制約と一緒によく使用されます。関連付けられた 2 つのテーブルの場合、関連付けられたフィールドの主キーが配置されているテーブルが主テーブル (親テーブル) となり、外部キーが配置されているテーブルが副テーブル (子テーブル) になります。
外部キーは、マスター テーブルとスレーブ テーブル間の関連付けを確立し、2 つのテーブルのデータの接続を確立し、2 つのテーブルのデータの一貫性と整合性を制約するために使用されます。
外部キーを定義するときは、次の規則に従う必要があります。
メイン テーブルはデータベースにすでに存在しているか、現在作成中のテーブルである必要があります。後者の場合、マスターテーブルとスレーブテーブルは同一のテーブルとなり、このようなテーブルを自己参照テーブルと呼び、この構造を自己参照整合性と呼びます。
メインテーブルには主キーを定義する必要があります。
主キーには null 値を含めることはできませんが、外部キーでは null 値が許可されます。つまり、外部キーのすべての非 null 値が指定された主キーに出現する限り、外部キーの内容は正しいことになります。
メインテーブルのテーブル名の後に列名または列名の組み合わせを指定します。この列または列の組み合わせは、メイン テーブルの主キーまたは候補キーである必要があります。
外部キーの列数は、メイン テーブルの主キーの列数と同じである必要があります。
外部キーの列のデータ型は、メイン テーブルの主キーの対応する列のデータ型と同じである必要があります。
#mysql はテーブルに外部キー制約を追加します
テーブルを変更するときに外部キー制約を追加できますが、外部キー制約の追加 キー制約の前提条件は、副テーブルの外部キー列のデータが主テーブルの主キー列のデータと一致している必要があり、そうでない場合はデータが存在しないということです。 データ テーブルを変更するときに外部キー制約を追加するための構文形式は次のとおりです。ALTER TABLE <数据表名> ADD CONSTRAINT <外键名> FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>);
例
データ テーブル tb_emp2 を変更し、設定します。フィールド deptId を外部キーに設定し、データ テーブルの主キー ID に関連付けます tb_dept1mysql> ALTER TABLE tb_emp2 -> ADD CONSTRAINT fk_tb_dept1 -> FOREIGN KEY(deptId) -> REFERENCES tb_dept1(id); Query OK, 0 rows affected (1.38 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> SHOW CREATE TABLE tb_emp2\G *************************** 1. row *************************** Table: tb_emp2 Create Table: CREATE TABLE `tb_emp2` ( `id` int(11) NOT NULL, `name` varchar(30) DEFAULT NULL, `deptId` int(11) DEFAULT NULL, `salary` float DEFAULT NULL, PRIMARY KEY (`id`), KEY `fk_tb_dept1` (`deptId`), CONSTRAINT `fk_tb_dept1` FOREIGN KEY (`deptId`) REFERENCES `tb_dept1` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gb2312 1 row in set (0.12 sec)
mysql ビデオ チュートリアル ]
以上がmysqlに外部キー制約を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。