在堆栈溢出的回答中,我看到了以下代码:
CREATE TABLE Favorites (
user_id INT NOT NULL,
movie_id INT NOT NULL,
PRIMARY KEY (user_id, movie_id),
FOREIGN KEY (user_id) REFERENCES Users(user_id),
FOREIGN KEY (movie_id) REFERENCES Movies(movie_id)
);我从来没有使用过‘外键’关系关键字。
发布于 2010-09-15 22:22:42
外键是对另一个表中的主键或表本身的引用。它用于所谓的http://en.wikipedia.org/wiki/Referential_integrity。基本上在您提供的表中,要将记录插入到Favorites中,您必须从Users表中提供一个有效的movie_id,从Movies表中提供一个有效的movie_id。使用外键强制后,我无法从Users或Movies中删除记录。如果我没有外键,我可以删除那些记录。如果我在Favorites上做了一个Favorites,它就会崩溃。
见维基百科。
发布于 2010-09-15 22:26:52
外键描述两个表之间的关系。它有许多好处:
如果使用的是MyISAM,则不支持外键。
发布于 2010-09-15 22:43:49
还可以在删除相关记录时添加级联功能。例如,如果我在一个相关的" book“表中有一个包含许多书籍的库表,并且我从我的库表中删除了一个给定的库,那么它的依赖的图书记录也将被删除。
https://stackoverflow.com/questions/3722298
复制相似问题