mysql - SQL 外键和引用其他表

标签 mysql foreign-keys primary-key

我正在尝试使用外键将两个表链接在一起。一张表是users,另一张是userInfo。当我删除用户时,我也想删除他们的信息。当我从用户表中删除用户时,他们在 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,
);

这是我的用户信息表。是的,我知道它可能在同一张 table 上。我这样做只是为了一个简单的例子。

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
);

编辑 - 问题已解决。感谢所有提供帮助的人。

CREATE TABLE 语句的末尾添加了 TYPE = InnoDB

最佳答案

ENGINE=INNODB 添加到这些 CREATE TABLE 语句中以确保它们是 InnoDB 表。 MySQL 5.5.5以下版本默认为MyISAM,不支持外键关系,但定义外键关系也不会报错。

关于mysql - SQL 外键和引用其他表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10391034/

相关文章:

php - 最近对 Php、MySQL 和 Apache 进行共享托管更新后,我的网站无法从 MySQL 提取数据(1064 语法错误)

javascript - UNIX_TIMESTAMP 不是普遍相同吗?我的服务器时间提前 5 秒

mysql - 从一个表更新另一表中的值

php - MYSQL自动更新副表查询

primary-key - DynamoDB : When to use what PK type?

php - 输入表单的问题

java - 改进mysql JDBC插入调用

sql - MySQL - FK 在 Web 应用程序中有用/可行吗?

mysql - 无法添加或更新子行: a foreign key constraint fails even if I already added row on parent table

java - 将时间戳字符串转换为唯一主键