mysql では、DROP キーワードを指定した ALTER TABLE ステートメントを使用して、外部キー関係 (制約) を削除できます。構文は、"ALTER TABLE データ テーブル名 DROP FOREIGN KEY 外部キー制約名;"; "ALTER TABLE" ステートメント テーブルを変更する (元のテーブルの構造を変更する) ために使用されます。 "DROP FOREIGN KEY" ステートメントを追加した後の変更機能は、外部キー関係 (制約) の削除に限定されます。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
外部キー関係 (外部キー制約) はテーブルの特別なフィールドであり、多くの場合、主キー制約と一緒に使用されます。関連付けられた 2 つのテーブルの場合、関連付けられたフィールドの主キーが配置されているテーブルが主テーブル (親テーブル) となり、外部キーが配置されているテーブルが副テーブル (子テーブル) になります。
外部キーは、マスター テーブルとスレーブ テーブル間の関連付けを確立し、2 つのテーブルのデータの接続を確立し、2 つのテーブルのデータの一貫性と整合性を制約するために使用されます。たとえば、果物の屋台には、リンゴ、桃、プラム、スイカの 4 種類の果物しか置いていないとすると、果物を買いに果物屋に来たとき、選択できるのはリンゴ、モモ、プラム、スイカだけになります。は購入できません。
レコードがメイン テーブルから削除されると、それに応じてテーブルの対応するレコードも変更する必要があります。テーブルには 1 つ以上の外部キーを含めることができ、外部キーは null にすることもできます。null でない場合、各外部キーの値はメイン テーブルの主キーの特定の値と等しくなければなりません。
外部キー制約がテーブルに不要な場合は、テーブルから削除する必要があります。外部キーを削除すると、マスターテーブルとスレーブテーブルの関連付けが解除されます。
では、mysql はどのようにして外部キー関係 (制約) を削除するのでしょうか?
mysql では、DROP キーワードを指定した ALTER TABLE ステートメントを使用して、外部キー関係 (制約) を削除できます。
外部キー制約を削除するための構文形式は次のとおりです。
ALTER TABLE 数据表名 DROP FOREIGN KEY 外键约束名;
ALTER TABLE ステートメントは、追加や削除など、元のテーブルの構造を変更するために使用されます。列、元の列タイプの変更、列またはテーブルの名前変更など。
DROP FOREIGN KEY ステートメントは外部キー関係を削除するために使用されます
例:
使用データテーブル tb_emp2 の外部キー制約を表示するには、次のステートメントを使用します。
SHOW CREATE TABLE tb_emp2\G
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)
外部キー制約を削除します fk_tb_dept1
ALTER TABLE tb_emp2 DROP FOREIGN KEY fk_tb_dept1;
mysql> ALTER TABLE tb_emp2 -> DROP FOREIGN KEY fk_tb_dept1; Query OK, 0 rows affected (0.19 sec) Records: 0 Duplicates: 0 Warnings: 0
##[関連する推奨事項:
mysql ビデオ チュートリアル]
以上がmysqlで外部キー関係を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。