在mysql中,可以利用ALTER table語句配合DROP關鍵字來刪除外鍵關系(約束),語法“ALTER TABLE 數據表名 DROP FOREIGN KEY 外鍵約束名;”;“ALTER TABLE”語句用于修改表(改變原有表的結構),而添加了“DROP FOREIGN KEY”語句后,修改功能就限制在刪除外鍵關系(約束)上。
本教程操作環境:windows7系統、mysql8版本、Dell G3電腦。
外鍵關系(外鍵約束)是表的一個特殊字段,經常與主鍵約束一起使用。對于兩個具有關聯關系的表而言,相關聯字段中主鍵所在的表就是主表(父表),外鍵所在的表就是從表(子表)。
外鍵用來建立主表與從表的關聯關系,為兩個表的數據建立連接,約束兩個表中數據的一致性和完整性。比如,一個水果攤,只有蘋果、桃子、李子、西瓜等 4 種水果,那么,你來到水果攤要買水果就只能選擇蘋果、桃子、李子和西瓜,其它的水果都是不能購買的。
主表刪除某條記錄時,從表中與之對應的記錄也必須有相應的改變。一個表可以有一個或多個外鍵,外鍵可以為空值,若不為空值,則每一個外鍵的值必須等于主表中主鍵的某個值。
當一個表中不需要外鍵約束時,就需要從表中將其刪除。外鍵一旦刪除,就會解除主表和從表間的關聯關系。
那么mysql怎么刪除外鍵關系(約束)?
在mysql中,可以利用ALTER TABLE語句配合DROP關鍵字來刪除外鍵關系(約束)。
刪除外鍵約束的語法格式如下所示:
ALTER?TABLE?數據表名?DROP?FOREIGN?KEY?外鍵約束名;
-
ALTER TABLE?語句用于改變原有表的結構,例如增加或刪減列、更改原有列類型、重新命名列或表等。
-
DROP FOREIGN KEY語句用于刪除外鍵關系
示例:
使用以下語句查看數據表 tb_emp2 的外鍵約束:
SHOW?CREATE?TABLE?tb_emp2G
mysql>?SHOW?CREATE?TABLE?tb_emp2G ***************************?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)
刪除數據表 tb_emp2 中的外鍵約束 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視頻教程】