Seyyed Mojtaba Hoseyni
5 سال پیش توسط Seyyed Mojtaba Hoseyni مطرح شد
3 پاسخ

مشکل در استفاده از SQL Server در Laravel

سلام
من برای کار با sql server در لاراول یک مشکل عجیبی دارم که ممنون میشم راهنمایی کنید.
این جدول من هستش:

Schema::create('comments', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->unsignedBigInteger("article_id");
            $table->foreign("article_id")->references("id")->on("articles")->onDelete("cascade");
            $table->unsignedBigInteger("user_id");
            $table->foreign("user_id")->references("id")->on("users")->onDelete("cascade");
            $table->text("comment");
            $table->bigInteger("level");
            $table->boolean("status")->default(0);
            $table->timestamps();
        });

اما وقتی این Migration اجرا میشه این خطا رو میده:

 Illuminate\Database\QueryException  : SQLSTATE[42000]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Introducing
 FOREIGN KEY constraint 'comments_user_id_foreign' on table 'comments' may cause cycles or multiple cascade paths. Specify
ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints. (SQL: alter table "comments" add const
raint "comments_user_id_foreign" foreign key ("user_id") references "users" ("id") on delete cascade)

  at C:\xampp\htdocs\tinyblog - copy\vendor\laravel\framework\src\Illuminate\Database\Connection.php:669
    665|         // If an exception occurs when attempting to run a query, we'll format the error
    666|         // message to include the bindings with SQL, which will make this exception a
    667|         // lot more helpful to the developer instead of just the database's errors.
    668|         catch (Exception $e) {
  > 669|             throw new QueryException(
    670|                 $query, $this->prepareBindings($bindings), $e
    671|             );
    672|         }

اما وقتی یکی از کلید های خارجی در جدول بالا رو حذف میکنم یا فقط یکی از onDelete ها رو حذف می کنم (فرقی نداره کدوم) مشکل حل میشه و انگار نمیزاره 2 تا onDelete داخل یک جدول داشته باشم.
کد بالا برای MySQL به درستی کار میکنه و خطایی نمیده.
راه حلی هست؟
@hesammousavi @elyasbeshkani @ali.bayat @juza66


ثبت پرسش جدید
ftp
تخصص : ساده
@ftp 5 سال پیش مطرح شد
0

اول جدول articleرو بساز و مایگرت کن و بعد این جدول رو بساز


Seyyed Mojtaba Hoseyni
تخصص : برنامه نویس Laravel و ReactJS
@SMH118 5 سال پیش مطرح شد
0

جداول users و articles قبل از جدول comments ایجاد میشن
@mehdisut
@elyasbeshkani @hesammousavi @ali.bayat


ftp
تخصص : ساده
@ftp 5 سال پیش مطرح شد
0

@SMH118

باید جدا جدا migration کنی اول با جدول articles رو پاک کن بعد بسازش و بعدش commentرو بساز با دستور fresh این کار رو انجام نده


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام