删除主键 - 外键约束形成不正确
Remove primary key(s) - Foreign key constraint is incorrectly formed
我似乎无法删除 table 中的主键。
所有引用 (FK) 已被删除,但它仍然不允许我删除它。
我想做的是:删除旧主键以添加新主键 - 但保留旧列和数据(只需删除 PK 属性)。
怎么了?
Table:
CREATE TABLE `employee` (
`User` int(10) unsigned NOT NULL,
`Company` int(10) unsigned NOT NULL,
--unrelated boolean fields
PRIMARY KEY (`User`,`Company`),
KEY `FK_Employee_Company_idx` (`Company`),
CONSTRAINT `FK_Employee_Company` FOREIGN KEY (`Company`) REFERENCES `company` (`ID`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `FK_Employee_User` FOREIGN KEY (`User`) REFERENCES `user` (`ID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
正在尝试删除:
alter table Employee
drop primary key;
问题:
Error 1025: Error on rename of '.\DB_NAME#sql-3640_4' to '.\DB_NAME\employee' (errno: 150 "Foreign key constraint is incorrectly formed") SQL Statement: ALTER TABLE DB_NAME
.employee
DROP PRIMARY KEY
不再引用此 table。我还通过 information_schema.key_column_usage
中 select 的语句进行了检查,但未产生任何结果。
在 Google 上浪费了最后几个小时,但似乎无法弄清楚。
如果可行,添加一个新列:
alter table Employee
add column ID int unsigned not null auto_increment primary key;
现有的 FK 约束仍然需要索引。
添加以下索引(第一个)应该满足该要求:
CREATE INDEX xxx ON employee (User, Company);
我似乎无法删除 table 中的主键。 所有引用 (FK) 已被删除,但它仍然不允许我删除它。
我想做的是:删除旧主键以添加新主键 - 但保留旧列和数据(只需删除 PK 属性)。
怎么了?
Table:
CREATE TABLE `employee` (
`User` int(10) unsigned NOT NULL,
`Company` int(10) unsigned NOT NULL,
--unrelated boolean fields
PRIMARY KEY (`User`,`Company`),
KEY `FK_Employee_Company_idx` (`Company`),
CONSTRAINT `FK_Employee_Company` FOREIGN KEY (`Company`) REFERENCES `company` (`ID`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `FK_Employee_User` FOREIGN KEY (`User`) REFERENCES `user` (`ID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
正在尝试删除:
alter table Employee
drop primary key;
问题:
Error 1025: Error on rename of '.\DB_NAME#sql-3640_4' to '.\DB_NAME\employee' (errno: 150 "Foreign key constraint is incorrectly formed") SQL Statement: ALTER TABLE
DB_NAME
.employee
DROP PRIMARY KEY
不再引用此 table。我还通过 information_schema.key_column_usage
中 select 的语句进行了检查,但未产生任何结果。
在 Google 上浪费了最后几个小时,但似乎无法弄清楚。
如果可行,添加一个新列:
alter table Employee
add column ID int unsigned not null auto_increment primary key;
现有的 FK 约束仍然需要索引。
添加以下索引(第一个)应该满足该要求:
CREATE INDEX xxx ON employee (User, Company);