我刚才知道mysql MyISAM
引擎不支持外键。但我已经看到了几个声明foreign
键的示例,如下所示:
CREATE TABLE Orders (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
由于不支持外键,我们不会在MyISAM引擎中获得on update
和on delete
等好处。我的问题是,为什么我们在MyISAM引擎中声明一个字段作为外键?
答案 0 :(得分:2)
使用myisam表类型声明外键是没有意义的,因为此处不存在此功能。 Mysql可以解析 myisam表类型的外键语法(意味着如果遇到fk定义则不会引发错误消息),使得从其他数据库产品或表引擎迁移更容易,因为你没有编辑create table
语句以删除它们。