错误:150“Laravel 迁移外键约束的格式不正确”

用户10354117

用户代码

    public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password');
        $table->integer('role_id')->unsigned();
        $table->foreign('role_id')->references('id')->on('user_role')->onDelete('cascade');
        $table->rememberToken();
        $table->timestamps();
    });
}

用户角色代码

    public function up()
{
    Schema::create('user_roles', function (Blueprint $table) {
        $table->increments('id');
        $table->string('user_role');
        $table->timestamps();
    });
}

SQLSTATE[HY000]:一般错误:1005 无法创建表sms#sql-1718_62(errno: 150 "外键约束的格式不正确") (SQL: alter table usersadd constraint users_role_id_foreignforeign key ( role_id) 引用user_role( id) 在删除级联上)

天星

如果你想引用一个外键,请不要用

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

相反,你应该使用

$table->unsignedInteger('role_id');

这与 Migrations Part: Laravel Migrations 中的文档有关

所以你的新语句最终应该看起来像

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password');
        $table->unsignedInteger('role_id');
        $table->foreign('role_id')->references('id')->on('user_role')->onDelete('cascade');
        $table->rememberToken();
        $table->timestamps();
    });
}

编辑:

作者添加了user_role表的迁移代码后,问题就清楚了。

作者所指的表称为user_roles而不是外键迁移user_role 中提到的

所以这里是应该适用于用户的迁移

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password');
        $table->unsignedInteger('role_id');
        $table->foreign('role_id')->references('id')->on('user_roles')->onDelete('cascade'); // change this line
        $table->rememberToken();
        $table->timestamps();
   });
 }

命名与 Laravel 命名约定有关,其中所有表都以复数命名,而所有模型都以单数命名。

编辑2:

OP提到他的迁移顺序错误,迁移不工作的原因是什么。

用户表得到了之前创建user_roles表。这就是外键导致错误的原因。

希望这可以帮助你!如果您有更多问题,请告诉我!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

laravel 5.4 迁移错误号:150“外键约束的格式不正确”

来自分类Dev

Laravel迁移:“外键约束格式不正确”)

来自分类Dev

Laravel 迁移:自动增加 id 作为外键“errno: 150”外键约束的格式不正确“”

来自分类Dev

(Laravel 8)错误号:150“外键约束格式不正确

来自分类Dev

errno: 150 Laravel 迁移中的“外键约束形成不正确”

来自分类Dev

MySQL 错误 1005:外键约束的格式不正确

来自分类Dev

Laravel上的“外键约束格式不正确”

来自分类Dev

Laravel上的“外键约束格式不正确”

来自分类Dev

MySQL + Rails:错误:150“外键约束格式不正确”

来自分类Dev

Laravel 7错误外键约束在迁移期间形成不正确

来自分类Dev

Laravel一般错误:1005无法创建表`categories_products`(错误号:150“外键约束格式不正确”)

来自分类Dev

MySQL-errno 150:“外键约束格式不正确”

来自分类Dev

无法创建表`mailorder`.`o_details`(错误号:150“外键约束格式不正确”)

来自分类Dev

MySQL。不断获取外键约束格式不正确错误

来自分类Dev

无法创建表`travel`.`city`(错误号:150“外键约束形成不正确”)

来自分类Dev

errno: 150 “外键约束的格式不正确”但请检查我所知道的一切

来自分类Dev

外键约束格式错误(Laravel迁移)

来自分类Dev

SQLSTATE [HY000]:一般错误:1005无法创建表Data。company_eligibilities(错误号:150“外键约束格式不正确”)

来自分类Dev

无法创建表`socialnetwork`.`login_tokens`(错误号:150“外键约束形成不正确”)

来自分类Dev

'php artisan migrate'时如何修复错误“外键约束形成不正确”?

来自分类Dev

表导入错误:键约束形成不正确

来自分类Dev

外键约束格式错误,Laravel

来自分类Dev

外键约束格式不正确-MySQL

来自分类Dev

错误格式不正确

来自分类Dev

刷新迁移时出现外键约束错误-Laravel

来自分类Dev

Laravel 7迁移错误。无法添加外键约束

来自分类Dev

Laravel迁移不正确的表定义

来自分类Dev

Laravel 5迁移-外键约束失败

来自分类Dev

添加外键错误150

Related 相关文章

  1. 1

    laravel 5.4 迁移错误号:150“外键约束的格式不正确”

  2. 2

    Laravel迁移:“外键约束格式不正确”)

  3. 3

    Laravel 迁移:自动增加 id 作为外键“errno: 150”外键约束的格式不正确“”

  4. 4

    (Laravel 8)错误号:150“外键约束格式不正确

  5. 5

    errno: 150 Laravel 迁移中的“外键约束形成不正确”

  6. 6

    MySQL 错误 1005:外键约束的格式不正确

  7. 7

    Laravel上的“外键约束格式不正确”

  8. 8

    Laravel上的“外键约束格式不正确”

  9. 9

    MySQL + Rails:错误:150“外键约束格式不正确”

  10. 10

    Laravel 7错误外键约束在迁移期间形成不正确

  11. 11

    Laravel一般错误:1005无法创建表`categories_products`(错误号:150“外键约束格式不正确”)

  12. 12

    MySQL-errno 150:“外键约束格式不正确”

  13. 13

    无法创建表`mailorder`.`o_details`(错误号:150“外键约束格式不正确”)

  14. 14

    MySQL。不断获取外键约束格式不正确错误

  15. 15

    无法创建表`travel`.`city`(错误号:150“外键约束形成不正确”)

  16. 16

    errno: 150 “外键约束的格式不正确”但请检查我所知道的一切

  17. 17

    外键约束格式错误(Laravel迁移)

  18. 18

    SQLSTATE [HY000]:一般错误:1005无法创建表Data。company_eligibilities(错误号:150“外键约束格式不正确”)

  19. 19

    无法创建表`socialnetwork`.`login_tokens`(错误号:150“外键约束形成不正确”)

  20. 20

    'php artisan migrate'时如何修复错误“外键约束形成不正确”?

  21. 21

    表导入错误:键约束形成不正确

  22. 22

    外键约束格式错误,Laravel

  23. 23

    外键约束格式不正确-MySQL

  24. 24

    错误格式不正确

  25. 25

    刷新迁移时出现外键约束错误-Laravel

  26. 26

    Laravel 7迁移错误。无法添加外键约束

  27. 27

    Laravel迁移不正确的表定义

  28. 28

    Laravel 5迁移-外键约束失败

  29. 29

    添加外键错误150

热门标签

归档