Laravel SQLSTATE[23000] 无法删除或更新父行:外键约束失败
Posted
技术标签:
【中文标题】Laravel SQLSTATE[23000] 无法删除或更新父行:外键约束失败【英文标题】:Laravel SQLSTATE[23000] Cannot delete or update a parent row: a foreign key constraint fails 【发布时间】:2021-12-14 02:54:00 【问题描述】:我希望你没事,我只是想发布这篇文章,因为 down()
函数和删除列以及所有这些东西对我也不起作用。
例如:
public function down()
Schema::table('users', function($table)
$table->dropColumn(array('description1', 'description2', 'description3'));
);
来自这篇文章:Laravel migrate:rollback adding and deleting table columns。
【问题讨论】:
【参考方案1】:我编写了一个简单的命令行来按顺序删除所有表。
代码:
Artisan::command('delete-all', function()
(Schema::dropIfExists('bloggers'));
(Schema::dropIfExists('ticket_labels'));
(Schema::dropIfExists('labels'));
(Schema::dropIfExists('tickets'));
(Schema::dropIfExists('service_admins'));
(Schema::dropIfExists('services'));
(Schema::dropIfExists('admins'));
(Schema::dropIfExists('admin_roles'));
(Schema::dropIfExists('priorities'));
(Schema::dropIfExists('statuses'));
(Schema::dropIfExists('users'));
(Schema::dropIfExists('failed_jobs'));
(Schema::dropIfExists('migrations'));
(Schema::dropIfExists('password_resets'));
(Schema::dropIfExists('personal_access_tokens'));
// After deleting all the tables, now executing migrate command-line.
exec('php artisan migrate');
$this->comment('Done');
)->purpose('Deleting all the tables on database');
我希望你喜欢:)。 享受吧。
【讨论】:
【参考方案2】:问题可能是您正在尝试应用适用于旧版本 Laravel 的解决方案,如果您正在使用新版本,最好使用方括号来定义数组是什么。
public function down()
Schema::table('users', function($table)
$table->dropColumn(['description1', 'description2', 'description3']);
);
我建议你检查你正在使用的 laravel 的版本,并根据版本寻找答案。
【讨论】:
以上是关于Laravel SQLSTATE[23000] 无法删除或更新父行:外键约束失败的主要内容,如果未能解决你的问题,请参考以下文章
SQLSTATE[23000]:Laravel 中的完整性约束违规
Laravel:数据表的 SQLSTATE [23000] 错误
Laravel:正确保存后返回重定向抛出 SQLSTATE [23000]:完整性约束违规
SQLSTATE[23000]:违反完整性约束:在 Laravel 5.2 中
Connection.php 第 729 行中的 QueryException:SQLSTATE[23000]:Laravel 5.2
Laravel 7 错误 - SQLSTATE [23000]:完整性约束违规:1048 列 'first_name' 不能为空