【问题标题】:Unable to drop column with foreign key in MySQL无法在 MySQL 中删除具有外键的列
【发布时间】:2015-05-31 21:56:06
【问题描述】:

我在ASP.NET 中使用Entityframework 创建了一个表。我的数据库是MySQL。我在 MySQL 上运行了SHOW CREATE TABLE 命令,得到了以下结果。

'AttendancePercentageDetails', 'CREATE TABLE `AttendancePercentageDetails` (\n  `AttendancePercentageDetailsId` int(11) NOT NULL AUTO_INCREMENT,\n  `Date` datetime NOT NULL,\n  `Percentage` double NOT NULL,\n  `SiteDetailsID` int(11) NOT NULL,\n  `UserDetailsID` int(11) NOT NULL,\n  PRIMARY KEY (`AttendancePercentageDetailsId`),\n  KEY `IX_SiteDetailsID` (`SiteDetailsID`) USING HASH,\n  KEY `IX_UserDetailsID` (`UserDetailsID`) USING HASH,\n  CONSTRAINT `FK_AttendancePercentageDetails_UserDetails_UserDetailsID` FOREIGN KEY (`UserDetailsID`) REFERENCES `UserDetails` (`UserDetailsID`) ON DELETE CASCADE ON UPDATE CASCADE,\n  CONSTRAINT `FK_AttendancePercentageDetails_SiteDetails_SiteDetailsID` FOREIGN KEY (`SiteDetailsID`) REFERENCES `SiteDetails` (`SiteDetailsId`) ON DELETE CASCADE ON UPDATE CASCADE\n) ENGINE=InnoDB AUTO_INCREMENT=812 DEFAULT CHARSET=latin1'

我正在尝试使用以下命令删除 foreign key UserDetailsID

SET foreign_key_checks = 0;
ALTER TABLE dbclockit.AttendancePercentageDetails DROP FOREIGN KEY UserDetailsID;
SET foreign_key_checks = 1;

MySQL 抛出错误提示

Error Code: 1091. Can't DROP 'UserDetailsID'; check that column/key exists

我跑了

SELECT * FROM dbclockit.AttendancePercentageDetails;

并且输出具有UserDetailsID 列。

【问题讨论】:

    标签: mysql entity-framework foreign-keys key alter-table


    【解决方案1】:

    这行得通。

    ALTER TABLE dbclockit.AttendancePercentageDetails DROP foreign key FK_AttendancePercentageDetails_UserDetails_UserDetailsID;
    ALTER TABLE dbclockit.AttendancePercentageDetails DROP COLUMN  UserDetailsID;
    

    【讨论】:

      猜你喜欢
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多