Laravel 5.8 错误 SQLSTATE[HY000]: 一般错误: 1005 uuid

Posted

技术标签:

【中文标题】Laravel 5.8 错误 SQLSTATE[HY000]: 一般错误: 1005 uuid【英文标题】:Laravel 5.8 error SQLSTATE[HY000]: General error: 1005 uuid 【发布时间】:2020-05-26 20:46:52 【问题描述】:

我正在使用 Laravel 5.8 和包 "goldspecdigital/laravel-eloquent-uuid",因为我需要使用 UUID4,这是我的迁移文件:

 public function up()
    
        Schema::create('images', function (Blueprint $table) 
            $table->bigIncrements('id');
            // $table->timestamps();
            $table->string('path');
            $table->uuid('visit_id');
            $table->foreign('visit_id')->references('id')->on('visits');

        );
    

我收到以下错误:

SQLSTATE[HY000]: 一般错误: 1005 Can't create table doctors _pharmacy.images (errno: 150 "外键约束格式不正确") (SQL: alter table images add constraint images_visit_id_foreign外键 (visit_id) 引用 visits (id))

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

如下更新schemavisitsimages。 然后运行php artisan migrate cmd。

visits 表架构

public function up()
    
        Schema::create('visits', function (Blueprint $table) 
            $table->uuid('id')->primary();
            // your column will be here
            ......
            ......
            $table->timestamps();
        );
    

images 表架构

public function up()

    Schema::create('images', function (Blueprint $table) 
        $table->bigIncrements('id');
        $table->string('path');
        $table->uuid('visit_id');
        $table->foreign('visit_id')->references('id')->on('visits');

    );

【讨论】:

以上是关于Laravel 5.8 错误 SQLSTATE[HY000]: 一般错误: 1005 uuid的主要内容,如果未能解决你的问题,请参考以下文章

SQLSTATE[HY000]:一般错误:1215 无法添加外键约束 Laravel 5.8

Laravel 5.8:SQLSTATE [42S22]:找不到列:1054 未知列

PHP SQLSTATE[HY000] [1045] 用户 Laravel 访问被拒绝

SQLSTATE [23502]:非空违规:7 错误 - laravel

为啥我是 laravel 抛出 SQLSTATE[42000]:语法错误或访问冲突:1064 错误

Laravel:数据表的 SQLSTATE [23000] 错误