MySQL删除外键约束问题。

    xiaoxiao2024-10-23  83

    当我们在一个表中添加字段约束的时候: 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

    然后我们再执行外键删除操作:

    <n>Query: alter table product drop foreign key product_ibfk_1 0 row(s) affected 删除成功。
    最新回复(0)