MySql错误1025

MySql错误1025,mysql,mysql-workbench,mysql-error-1025,Mysql,Mysql Workbench,Mysql Error 1025,我正在尝试在名为ProductInvoice的表中删除外键列。我试图删除的列名为PersonID,来自表Person。当我运行查询时 ALTER TABLE ProductInvoice DROP COLUMN PersonID; 我得到这个错误 Error Code: 1025. Error on rename of './jkripal/#sql-91c_19ff0' to './jkripal/ProductInvoice' (errno: 150) 有关于如何解决此问题的建议吗?我环

我正在尝试在名为ProductInvoice的表中删除外键列。我试图删除的列名为PersonID,来自表Person。当我运行查询时

ALTER TABLE ProductInvoice
DROP COLUMN PersonID;
我得到这个错误

Error Code: 1025. Error on rename of './jkripal/#sql-91c_19ff0' to './jkripal/ProductInvoice' (errno: 150)
有关于如何解决此问题的建议吗?我环顾了这个网站,找不到任何有帮助的答案

这些是显示创建表ProductInvoice的结果

'ProductInvoice', 'CREATE TABLE `ProductInvoice` 
(\n  `ProductInvoiceID` int(11) NOT NULL AUTO_INCREMENT,
\n  `PersonID` int(11) DEFAULT NULL,
\n  `ProductID` int(11) NOT NULL,
\n  `InvoiceID` int(11) NOT NULL,
\n  `TravelDate` varchar(255) DEFAULT NULL,
\n  `TicketNote` varchar(255) DEFAULT NULL,
\n  `Quantity` int(11) DEFAULT NULL,
\n  `InsuranceTicketCode` varchar(255) DEFAULT NULL,
\n  PRIMARY KEY (`ProductInvoiceID`),
\n  KEY `fkPerson` (`PersonID`),
\n  KEY `fk_ProductInvoice_to_Product` (`ProductID`),
\n  KEY `fk_ProductInvoice_to_Invoice` (`InvoiceID`),
\n  CONSTRAINT `ProductInvoice_ibfk_1` FOREIGN KEY (`PersonID`) REFERENCES `Person` (`PersonID`),
\n  CONSTRAINT `ProductInvoice_ibfk_2` FOREIGN KEY (`ProductID`) REFERENCES `Product` (`ProductID`),
\n  CONSTRAINT `ProductInvoice_ibfk_3` FOREIGN KEY (`InvoiceID`) REFERENCES `Invoice` (`InvoiceID`)
\n) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8'

首先删除外键:

ALTER TABLE ProductInvoice DROP FOREIGN KEY ....;
然后:

ALTER TABLE ProductInvoice DROP COLUMN PersonID;

首先禁用外键

SET foreign_key_checks = 0;
删除PersonID上的密钥

ALTER TABLE ProductInvoice
  DROP INDEX fkPerson;
现在放下外键

ALTER TABLE ProductInvoice DROP FOREIGN KEY ProductInvoice_ibfk_1;
放下柱子

ALTER TABLE ProductInvoice DROP COLUMN PersonID;
启用外键:

SET foreign_key_checks = 1;

我也试过了,但没用。我编辑了原始帖子以包含错误。@ryandroman您需要使用
外键
name。不是列名称我写这些表已经有一段时间了,有没有办法轻松找到它?我只是找到了名称并按你说的编辑了它,但由于某种原因它仍然不会删除列。我用更新后的查询和收到的错误编辑了原始帖子。@RyanDorman删除外键后删除索引:
Drop Index fkPerson ON ON ProductInvoice
在这里查看如何查找和删除外键帖子
显示创建表ProductInvoice的结果
@Mihai I编辑了主要帖子