这是 Persons 和 Orders 之间的常见示例。我只是从互联网上复制它作为测试。
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID) );
CREATE TABLE Orders (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(ID)
);
至此一切顺利。但是我怎样才能删除外键 PersonID?
我试过了。
ALTER TABLE Orders
DROP FOREIGN KEY PersonID;
MySQL 说:
1091 - Can't DROP 'PersonID'; check that column/key exists
最佳答案
使用语句标识约束的名称:
SELECT CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_NAME = 'Orders'
AND COLUMN_NAME = 'PersonID';
在您的 ALTER TABLE
语句中使用来自 CONSTRAINT_NAME
的结果。例如:
ALTER TABLE Orders
DROP FOREIGN KEY `myconstraint`;
来自 MySQL Reference Manual 的答案
关于mysql - 不能在 mySQL 中删除外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53308826/