解決Cannot drop index '*****': needed in a foreign key constraint

今天小編在用mysql數據庫去刪除一個表的字段時遇到了Cannot drop index 'PK_school_province': needed in a foreign key constraint問題,如下將表的創建貼出來:

CREATE TABLE `school` (
  `school_id` int(11) NOT NULL AUTO_INCREMENT,
  `school_name` varchar(255) NOT NULL,
  `school_pro_id` int(11) NOT NULL,
  PRIMARY KEY (`school_id`),
  KEY `PK_school_province` (`school_pro_id`),
  CONSTRAINT `PK_school_province` FOREIGN KEY (`school_pro_id`) REFERENCES `province` (`province_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2735 DEFAULT CHARSET=utf8

大家都知道KEY與index的意思相近,都是創建索引,現在使用coinstraint來將對字段進行限制,將索引PK_school_province 與外鍵school_pro_id與外表province表的province_id限制關聯(constraint也有索引的意思,on面跟語句),那麼現在我想直接刪除school_pro_id這個字段,這時,直接使用"alter table school drop column school_pro_id"會出現Cannot drop index 'PK_school_province': needed in a foreign key constraint;大意是不能刪除被外鍵限制的索引PK_school_province。那麼這個時候我們需要將外鍵限制的索引給刪除掉,使用”alter table school drop foreign key PK_school_province“就能將PK_school_province刪除掉,那麼這個時候再使用“alter table school drop column school_pro_id”就可以將school表中的school_pro_id刪除掉。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章