【发布时间】:2023-03-23 15:42:01
【问题描述】:
这是人员和订单之间的常见示例。我只是从互联网上复制它作为测试。
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 - 无法删除“PersonID”;检查列/键是否存在
【问题讨论】:
-
您尝试删除的外键名称不存在。您需要通过查询找到它。 stackoverflow.com/questions/7765820/query-to-find-foreign-keys。编辑:如果你不命名约束,它通常被命名为“table_name.column_name”,所以在你的例子中,“Orders.PersonID”。
-
"PersonID" 是键应用的字段的名称,但不是(必然)键本身的名称。正如 T Gray 所说,如果您不知道密钥的名称,则必须查询它
-
嗨。这是一个常见问题解答。请始终在谷歌上搜索您的问题/问题/目标的许多清晰、简洁和特定的版本/措辞,带和不带您的特定字符串/名称,并阅读许多答案。将您发现的相关关键字添加到搜索中。如果您没有找到答案,请发布,使用 1 个变体搜索作为标签的标题和关键字。请参阅向下投票箭头鼠标悬停文本。如果您确实有要发布的非重复代码问题,请阅读并采取行动minimal reproducible example。
标签: mysql sql foreign-keys