SQL外键和引用其他表

时间:2012-04-30 21:47:23

标签: mysql foreign-keys primary-key

我正在尝试使用外键将两个表链接在一起。一个表是用户,另一个是userInfo。当我删除用户时,我也想删除他们的信息。当我从users表中删除用户时,他们在usersInfo中的条目仍然存在。我似乎无法弄清楚我做错了什么。

CREATE TABLE users (
userid INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL,
password VARCHAR(32) NOT NULL,
userlevel INT UNSIGNED NOT NULL,
rating int,
organization int(1),
timestamp varchar(20) NOT NULL,
);

这是我的userinfo表。是的,我知道它可能在同一张桌子上。我只是为了一个简单的例子而这样做。

CREATE TABLE usersInfo(
userid int  auto_increment NOT NULL,
userlocation varchar(50),
about varchar(300),
userkeywords varchar(150),
FOREIGN KEY(userid) REFERENCES users(userid) ON DELETE CASCADE ON UPDATE CASCADE
);

编辑 - 问题解决了。感谢所有帮助过的人。

TYPE = InnoDB声明的末尾添加了CREATE TABLE

1 个答案:

答案 0 :(得分:3)

ENGINE=INNODB添加到这些CREATE TABLE语句中,以确保它们是InnoDB表。低于5.5.5的MySQL版本将默认为MyISAM,它不支持外键关系,但如果您定义外键关系也不会引发错误。