所以我忙于做这个迁移,经过大量的研究,他仍然给我以下错误消息:
SQLSTATE[HY000]:常规错误: 1005无法创建表dev
.bindings
(errno: 150"外键约束格式不正确")(SQL:更改表bindings
添加约束bindings_users_id_foreign
外键(users_id
)引用用户
(id
)在更新级联上删除级联
代码:
Schema::create('bindings', function (Blueprint $table) {
$table->unsignedInteger('users_id');
$table->foreign('users_id')
->references('id')->on('users')
->onDelete('cascade')
->onUpdate('cascade');
});
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
});
版本:
PHP: v7.3
Laravel: v5.8.4
MariaDB: v10.3.13
Homestead: v8.1.0
如我所知,这应该正确地形成外键。任何帮助都将被感激!
在迁移中,将父表迁移放在子表的顶部
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
});
Schema::create('bindings', function (Blueprint $table) {
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')
->references('id')->on('users')
->onDelete('cascade')
->onUpdate('cascade');
});
然后运行php-artisan-migrate
命令。
更新:正如其他答案所述,我没有注意到,您需要先创建users表,然后才能创建外键。
执行外键时,两个字段都需要具有相同的属性。所以在你的例子中,如果你使用big增量,你的users_id需要是一个无符号的大int。
// User table needs to be created first
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
});
Schema::create('bindings', function (Blueprint $table) {
$table->bigInteger('users_id')->unsigned();
...
});
此外,标准是将其命名为user\u id
,这将使在Laravel
中处理关系更加容易。
运行迁移命令时出现错误。 这是管理表模式 另一个是laravel安装附带的用户表。 我想为user_id创建一个外键,但它会出错
问题内容: 我有两个表,是一列父表,并与一列(而不是实际的名称),当我把一个FK上,以在我得到的错误。如果要删除记录,我想删除表2记录。谢谢你的帮助 让我知道是否需要其他信息。我是mysql新手 问题答案: 我在HeidiSQL中遇到了同样的问题。您收到的错误非常神秘。我的问题最终是外键列和引用列的类型或长度不同。 外键列为,引用列为。一旦将它们设置为完全相同的类型,外键创建就可以完美地工作了。
我有一个帖子表和一个到达表,它引用了flight no(文本字符串格式)作为外键。然而,当我运行Laravel迁移时,我得到了可怕的错误: SQLSTATE[HY000]:常规错误: 1005不能创建表.(errno: 150"外键约束格式不正确")(SQL:改变表添加约束外键()引用() [PDOExc0019]SQLSTATE[HY000]:常规错误: 1005不能创建表.(errno: 15
我有一个订单表和一个有一个引用作为一个外来的。然而,当我运行Laravel迁移我得到可怕的错误代码: SQLSTATE[HY000]:常规错误: 1005不能创建表.(errno: 150"外键约束格式不正确")(SQL:改变表add约束外键()引用() SQLSTATE[HY000]:常规错误: 1005不能创建表.(errno: 150"外键约束格式不正确") 这是我的表模式: 这是我的sch
使用Laravel 5.3和雄辩模型,试图制作一个用户角色模型。我有2个表用户和角色的主要模式,每个用户都有一个角色,每个角色都有很多用户(一对多的关系)。 当我试图在用户表中创建一个引用角色表中id的外键时,它会给我这个错误 在Connection.php647行: SQLSTATE[HY000]:一般错误:1005无法创建表mydata。#sql-7e0_71(错误号:150“外键约束格式不正
Laravel5.6运行于:PHP7.2,MariaDB 10.3 当我想为我的表设置外键时,我只是不断地犯这个错误。 在其他表中,由Laravel本身定义的所有id变量和无符号自动增量 所以,我的迁移是这样的: 错误如下所示: SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以了解在LINE 1(SQL:alter