Laravel 10添加字段时抛出Illuminate\Database\QueryException异常求助
解决Laravel 10迁移students表新增字段时的QueryException问题
问题分析
报错核心原因是要新增的字段已存在于students表中,触发SQL的Duplicate column name错误,进而抛出Illuminate\Database\QueryException异常。
解决方案
方案1:调整迁移文件,移除重复字段
- 打开迁移文件
2023_08_17_055949_update_student_table.php - 检查
up()方法内的字段新增代码,删除表中已存在的字段(比如报错提示的address字段) - 重新执行迁移命令:
php artisan migrate
方案2:回滚迁移后重新调整
如果是刚执行错误迁移且无其他重要操作,先回滚最近一次迁移:
php artisan migrate:rollback
修改迁移文件确保新增字段为表中不存在的内容,再执行php artisan migrate。
方案3:先确认数据库表结构
通过数据库管理工具(如phpMyAdmin、Navicat)查看students表结构,明确已存在的字段,再针对性修改迁移文件的新增字段代码,避免重复创建。
额外优化建议
编写迁移时,可通过hasColumn()方法判断字段是否存在,避免重复创建:
public function up() { Schema::table('students', function (Blueprint $table) { if (!Schema::hasColumn('students', 'address')) { $table->string('address')->nullable(); } // 其他字段可同理添加判断 }); }
内容的提问来源于stack exchange,提问作者Shiv Prasad jangir
相关产品推荐
相关产品推荐

