首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel迁移:外键约束格式不正确

Laravel迁移:外键约束格式不正确
EN

Stack Overflow用户
提问于 2017-07-14 16:46:33
回答 1查看 2.1K关注 0票数 3

我正在使用迁移将一个字段更改为nullable(),使用以下代码。

代码语言:javascript
运行
复制
$table->integer('recipe_id')->nullable()->change();    

但是我得到了下面的错误。

代码语言:javascript
运行
复制
SQLSTATE[HY000]: General error: 1025 Error on rename of './blackfisk/#sql-2
2d_a' to './blackfisk/preparations' (errno: 150 "Foreign key constraint is
incorrectly formed") (SQL: ALTER TABLE preparations CHANGE recipe_id recipe
_id INT DEFAULT NULL)

我尝试使用以下命令将外键检查设置为0

代码语言:javascript
运行
复制
    \DB::statement('SET FOREIGN_KEY_CHECKS=0');

但是它给出了同样的错误。当我尝试在Sequel Pro中运行查询时,我也得到了这个错误,使用以下查询。

代码语言:javascript
运行
复制
SET FOREIGN_KEY_CHECKS = 0;
ALTER TABLE preparations CHANGE recipe_id recipe_id INT DEFAULT NULL;
SET FOREIGN_KEY_CHECKS = 1;

你知道我是不是漏掉了什么吗?谢谢!

EN

Stack Overflow用户

回答已采纳

发布于 2017-07-14 17:15:35

您应该创建一个unsignedInteger

代码语言:javascript
运行
复制
$table->UnsignedInteger('recipe_id')->nullable()->change();    

我希望这能帮到你

票数 5
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45098578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档