为什么我在MySQL中使用FOREIGN KEY子句创建表时返回报错?
语法错误修正说明
存在的2个核心语法问题:
employee表最后一列super_id INT末尾存在冗余逗号,SQL语法要求列定义列表的最后一项末尾不能加额外逗号branch表中mgr_id INT定义后缺少逗号分隔,且外键约束写法不规范,MySQL显式定义表级外键需要指定绑定的字段名
修正后的可执行代码:
CREATE TABLE employee ( employ_id INT PRIMARY KEY, first_name VARCHAR(30), last_name VARCHAR(30), birthday DATE, gender VARCHAR(1), salary INT, super_id INT ); CREATE TABLE branch ( branch_id INT PRIMARY KEY, branch_name VARCHAR(40), mgr_id INT, FOREIGN KEY (mgr_id) REFERENCES employee(employ_id) ON DELETE SET NULL, mgr_start_date DATE );
补充提示:请确保你的MySQL使用InnoDB存储引擎,只有InnoDB支持外键约束功能
内容的提问来源于stack exchange,提问作者Yash Tripathi
相关产品推荐
相关产品推荐

