在mysql初学当中,碰到了这个问题。
现有两张表,student和class。student表中有id为主键,name和classid,class表中有id为主键,name,准备设置classid为外键约束。语句如下
alter table student add constraint fk_stu_classid foreign key(classid) references class(id);
经检查语句没有错误,但是报错信息如下;
Can‘t create table ‘db_19.#sql-153c_4‘ (errno: 150)
郁闷了半天之后查询外键的定义,要求与所关联主键的类型相同,所以修改之后就解决了问题。
查询之后发现了别的情况
当发生此类的错误的时候,从三个角度入手:
1、确保主表有主键。
2、确保主从表数据引擎为InnoDB类型。
3、确定从表外键字段类型与主表一致。
所以要谨此这样错误的发生
时间: 2024-11-30 20:08:33