Laravel随笔 migrate时出现无法建立外键原因

migrate时出现1215,无法建立外键,原因通常有以下几种

当id为主表字段,user_id为从表字段时

  1. user_id的类型和id的类型不一致
  2. id为无符号型,此时user_id需要加入->unsigned()
  3. laravel会按照 表名顺序进行表的建立,所以主表一定要在子表之前建立,表名中的时间一定要早
    在这里插入图片描述
    当非id为主表字段(如,level),用户表的position_level为从表字段时(一个用户有一个职位,level代表职位等级)
  4. level字段必须先建立索引(unique或者index都可以),没有索引的字段是不能建外键的(当前三点都验证过没问题的时候,如果主表字段没有建立索引,直接执行alter语句进行外键追加,还是会直接报错的;然而,如果在navicat中进行手动添加外键,navicat会自动给主表字段添加索引)PS:这个狗屁东西坑了我一个晚上!!
发布了68 篇原创文章 · 获赞 0 · 访问量 1737

猜你喜欢

转载自blog.csdn.net/qj4865/article/details/104623471