开发者社区> 问答> 正文

MySQL Errno 150?mysql

我正在创建一些简单的表,但无法传递此外键错误,而且我不确定为什么。这是下面的脚本。

create TABLE Instructors (

ID varchar(10), First_Name varchar(50) NOT NULL, Last_Name varchar(50) NOT NULL, PRIMARY KEY (ID) );

create table Courses (

Course_Code varchar(10), Title varchar(50) NOT NULL, PRIMARY KEY (Course_Code)

);

create table Sections ( Index_No int, Course_Code varchar(10), Instructor_ID varchar(10), PRIMARY KEY (Index_No), FOREIGN KEY (Course_Code) REFERENCES Courses(Course_Code) ON DELETE cascade ON UPDATE cascade, FOREIGN KEY (Instructor_ID) REFERENCES Instructors(ID) ON DELETE set default

); 错误代码:1005。无法创建表'336_project.sections'(errno:150)

我的数据类型似乎相同,语法似乎正确。谁能指出我在这里没看到的内容吗?

我正在使用MySQL Workbench 5.2

展开
收起
保持可爱mmm 2020-05-17 12:31:27 360 0
1 条回答
写回答
取消 提交回答
  • 如果您使用的是InnoDB引擎,那ON DELETE SET DEFAULT是您的问题。以下是手册摘录:

    虽然MySQL服务器允许使用SET DEFAULT,但InnoDB拒绝它为无效。InnoDB表不允许使用此子句的CREATE TABLE和ALTER TABLE语句。

    您可以使用ON DELETE CASCADEor ON DELETE SET NULL,但不能使用ON DELETE SET DEFAULT来源:stack overflow

    2020-05-17 12:40:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像