【发布时间】:2017-02-24 00:26:53
【问题描述】:
在 laravel 迁移文件中,我有以下代码:
Schema::table('stripe_customers', function (Blueprint $table) {
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});
“user_id”是表“stripe_customers”中现有的无符号整数列。
'id' 是 'users' 中的主键列。
但是,当我运行 migrate 命令时,我收到以下错误消息:
[Illuminate\Database\QueryException]
SQLSTATE[HY000]: General error: 1005 Can't create table 'thedealerapp.#sql-47a_78859' (errno: 150) (SQL:
alter table `stripe_customers` add constraint stripe_customers_user_id_foreign foreign key (`user_id`)
references `users` (`id`))
[PDOException]
SQLSTATE[HY000]: General error: 1005 Can't create table 'thedealerapp.#sql-47a_78859' (errno: 150)
为什么会这样?
【问题讨论】:
-
如果您删除该调用并尝试将其直接添加到数据库中会发生什么?
-
由于列类型或表排序规则不匹配,通常会发生 err 150。
-
user_id上的所有值都是有效的用户 ID?两列(stripe_customers.user_id和users.id具有相同的数据类型? -
'id' is a primary key column in 'users'-id也是无符号整数吗?
标签: mysql laravel laravel-5 laravel-5.2 laravel-5.1