MySQL刪除外鍵約束問題


當我們在一個表中添加字段約束的時候:

ALTER TABLE product ADD CONSTRAINT product_fk FOREIGN KEY(category_id) REFERENCES category(id);

會認為我的外鍵約束名稱為product_fk, 然后當我們想刪除時:

ALTER TABLE product DROP FOREIGN KEY product_fk;

 

 

會出現以下的錯誤:

<e>Query: alter table product drop foreign key product_fk

Error Code: 1025

Error on rename of '.\web_day09\product' to '.\web_day09\#sql2-2330-1' (errno: 152)

 

 

這是因為字段的外鍵約束名並不是product_fk 。我們在數據庫中執行一下命令:

SHOW CREATE TABLE product

 控制台會顯示

Table Create Table product

CREATE TABLE `product` (

`pid` varchar(32) NOT NULL,

`pname` varchar(40) DEFAULT NULL,

`price` double DEFAULT NULL,

`category_id` varchar(32) DEFAULT NULL,

PRIMARY KEY (`pid`),

KEY `category_id` (`category_id`),

CONSTRAINT `product_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `category` (`cid`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

 

 

從建表語句中我們發現外鍵約束名稱是:

product_ibfk_1

 

 

然后我們再執行外鍵刪除操作

alter table product drop foreign key product_ibfk_1

0 row(s) affected

 

原文出處:https://blog.csdn.net/qq_35604488/article/details/90573415


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM