【发布时间】:2020-06-20 05:59:11
【问题描述】:
我正在使用 Laravel 框架;我有多个连接的表,
用户架构表:
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
文章架构表:
Schema::create('articles', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->string("title");
$table->string("slug")->unique();
$table->text("cover");
$table->text("body");
$table->boolean("status")->default(1);
$table->timestamps();
});
评论架构表:
Schema::create('comments', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger("user_id");
$table->foreign("user_id")->references("id")->on("users")->onDelete('cascade');
$table->unsignedBigInteger("article_id");
$table->foreign("article_id")->references("id")->on("articles")->onDelete('cascade');
$table->text("comment");
$table->bigInteger("level");
$table->boolean("status")->default(0);
$table->timestamps();
});
在 cmets 表中我有这个重要的代码:
$table->unsignedBigInteger("user_id");
$table->foreign("user_id")->references("id")->on("users")->onDelete('cascade');
$table->unsignedBigInteger("article_id");
$table->foreign("article_id")->references("id")->on("articles")->onDelete('cascade');
我想在删除文章或用户时,我想在删除用户或文章时删除他们的 cmets,但这是 SQL Server 数据库中的错误。
错误表单 SQL Server 数据库: enter image description here
当我删除这个方法时
->onDelete('级联');
错误消失了。
我肯定需要有相应的方法。谁能指导我解决这个问题?
【问题讨论】:
-
您的问题是约束“article_favorite_user_id_foreign”。在图像上执行建议的 SQL 代码,直接在您的 MS SQL Server 上:alter tablearticles_favorite add constraint article_favorite_user_id_foreign on update cascade on delete cascade。
标签: php sql-server database laravel cascading-deletes