我正在使用迁移将字段更改为nullable(),使用以下代码。
$table->integer('recipe_id')->nullable()->change();
但是我收到了以下错误。
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 \DB::statement('SET FOREIGN_KEY_CHECKS=0');
但它给出了同样的错误。当我尝试在Sequel Pro中运行查询时,我也会使用以下查询获得此错误。
SET FOREIGN_KEY_CHECKS = 0;
ALTER TABLE preparations CHANGE recipe_id recipe_id INT DEFAULT NULL;
SET FOREIGN_KEY_CHECKS = 1;
任何想法如果我在这里遗漏了什么?谢谢!
答案 0 :(得分:5)
您应该创建unsignedInteger
$table->UnsignedInteger('recipe_id')->nullable()->change();
我希望这会有所帮助