在进行迁移添加时出现外键约束错误

22 浏览
0 Comments

在进行迁移添加时出现外键约束错误

我正在尝试在Laravel 4的User和GP两个表之间创建外键约束。一个用户可以与多个GP相关联。外键是用户表中的'Practice_ID',该字段与GP表中的ID相关联。

我得到的错误是:

[Exception]

SQLSTATE[HY000]: General error: 1005 Can't create table 'doctor.#sql-3ac_a4' (errno: 150) (SQL: alter table users add constraint users_practice_id_foreign foreign key (practice_id) references gp (id)) (Bindings: array ())

0
0 Comments

在进行迁移时,如果出现"Foreign key constraint error when adding through migrating"这个错误,主要原因是数据类型不匹配。解决方法是在"users"表中将外键声明为无符号整数。

具体操作步骤如下:

1. 在"users"表中的外键字段上添加以下代码:

$table->integer('practice_id')->unsigned();

2. 确保数据库引擎为支持外键约束的INNODB。

如果按照上述方法进行了调整,但在运行"php artisan migrate:refresh"命令后仍然出现相同的错误,可以尝试将"gp"表中的字段改回普通的自增字段,并在"users"表中使用上述代码。

通过以上步骤进行修改,可以解决"Foreign key constraint error when adding through migrating"这个问题。

0