mysql怎麼取消外來鍵限制(約束)?

2020-10-06 09:00:16

mysql取消外來鍵限制(約束)的方法:通過「ALTER TABLE <表名> DROP FOREIGN KEY <外來鍵約束名>;」語句來取消;外來鍵一旦刪除,就會解除主表和從表間的關聯關係。

MySQL 外來鍵約束(FOREIGN KEY)是表的一個特殊欄位,經常與主鍵約束一起使用。對於兩個具有關聯關係的表而言,相關聯欄位中主鍵所在的表就是主表(父表),外來鍵所在的表就是從表(子表)。

外來鍵用來建立主表與從表的關聯關係,為兩個表的資料建立連線,約束兩個表中資料的一致性和完整性。比如,一個水果攤,只有蘋果、桃子、李子、西瓜等 4 種水果,那麼,你來到水果攤要買水果就只能選擇蘋果、桃子、李子和西瓜,其它的水果都是不能購買的。

mysql取消外來鍵限制(約束)的方法

當一個表中不需要外來鍵約束時,就需要從表中將其刪除。外來鍵一旦刪除,就會解除主表和從表間的關聯關係。

刪除外來鍵約束的語法格式如下所示:

ALTER TABLE <表名> DROP FOREIGN KEY <外來鍵約束名>;

範例

刪除資料表 tb_emp2 中的外來鍵約束 fk_tb_dept1,SQL 語句和執行結果如下所示。

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> 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`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
1 row in set (0.00 sec)

可以看到,tb_emp2 中已經不存在 FOREIGN KEY,原有的名稱為 fk_emp_dept 的外來鍵約束刪除成功。

推薦教學:

以上就是mysql怎麼取消外來鍵限制(約束)?的詳細內容,更多請關注TW511.COM其它相關文章!