You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel执行php artisan migrate报QueryException错误如何解决

报错原因
  • 核心问题是迁移文件未提前声明access_id、user_id两个字段,直接创建外键约束。数据库要求必须先存在对应字段,才能在字段上创建外键索引,因此触发字段不存在的报错。
  • 存在两个潜在兼容问题需要同步排查:
    1. 需保证access、user两张关联表的主键类型与中间表的外键字段类型完全匹配:如果关联表主键是increments(整型自增),外键字段用unsignedInteger;如果是Laravel 7+默认的bigIncrements(长整型自增),外键字段要用unsignedBigInteger,类型不匹配同样会导致外键创建失败。
    2. 需确认用户表实际表名是否为user,Laravel默认生成的用户表名为users,如果实际表名与这里写的on('user')不一致,后续也会触发关联表不存在的报错。
修复方案

修改迁移文件代码,先声明字段再创建外键,修改后的完整代码如下:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateAccessUser extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('access_user', function (Blueprint $table) {
            // 多对多中间表无特殊需求可以去掉单独的id主键
            $table->increments('id');
            // 先声明外键字段,这里以关联表主键为整型自增为例,长整型自增替换为unsignedBigInteger即可
            $table->unsignedInteger('access_id');
            $table->unsignedInteger('user_id');
            // 定义外键约束
            $table->foreign('access_id')->references('id')->on('access');
            $table->foreign('user_id')->references('id')->on('user');
            // 也可使用Laravel内置的更简洁的外键写法,自动匹配关联表和主键
            // $table->foreignId('access_id')->constrained();
            // $table->foreignId('user_id')->constrained('user'); // 表名非默认值需手动指定
            $table->boolean('status');
            $table->timestamp('updated_at');
            $table->timestamp('created_at');
            $table->string('updated_by');
            $table->string('created_by');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('access_user');
    }
}

修改完成后,如果之前运行迁移已经生成了部分表,先执行php artisan migrate:rollback回滚未完成的迁移,或者手动删除数据库中已经生成的相关表,再重新执行php artisan migrate即可正常运行。

内容的提问来源于stack exchange,提问作者user16558324

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:15:06