mysql - MYSQL 外键格式不正确
问题描述
在我的第一个外键约束格式不正确的地方出现错误。我正在等待我的讲师的回复,如果她能发现问题,但我想我会在这里问
我的SQL查询如下
CREATE DATABASE rugby;
USE rugby;
CREATE TABLE address(
address_ID INT AUTO_INCREMENT NOT NULL,
address_name VARCHAR(50) NOT NULL,
PRIMARY KEY (address_ID)
) ENGINE=INNODB;
CREATE TABLE team(
team_ID INT AUTO_INCREMENT NOT NULL,
team_Name VARCHAR(25) NOT NULL,
team_Year INT NOT NULL,
PRIMARY KEY(team_ID)
) ENGINE=INNODB;
CREATE TABLE person(
person_ID INT AUTO_INCREMENT NOT NULL,
name VARCHAR(30) NOT NULL,
phone INT NOT NULL,
address_ID INT NOT NULL,
email VARCHAR(50),
photo BLOB,
PRIMARY KEY(person_ID),
FOREIGN KEY(address_ID) REFERENCES address(address_ID) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=INNODB;
我遵循了我们的教学方式,但无法发现问题。
任何帮助表示赞赏
解决方案
在表中,person
您已定义address_ID
为NOT NULL
,但是
当您定义 时,FOREIGN KEY
您设置:
ON DELETE SET NULL
NOT NULL
这与定义相矛盾。
推荐阅读
- python - 如何将 geom_hlines 图例添加到 plotnine 的图中?
- symbols - 在普通文本中显示字符串连接的符号是什么?
- python - 如何将这些数据加载到 LSTM 中?
- mysql - 无法从 Left Join Where & group by 中找到预期结果
- python-3.x - 以下 Python 套接字级编程代码在什么时候卡住了?
- python-3.x - 无法创建解释器:参数安全检查 = '' 在 <
> 无效。'' 不是有效的 SafetyChecks - reactjs - 如何避免在调用组件和可重用组件中管理状态?
- php - laravel 集体形式的 old() 函数
- laravel - Laravel - 用 xyz 之类的字符串定义关系而不是使用 id
- c++ - 无法使用 Gradle 在同一源文件中链接 C++ 方法