sql >> データベース >  >> RDS >> Mysql

Laravelの移行-整合性制約違反:1452子行を追加または更新できません:外部キー制約が失敗します

    私も同じ問題を抱えていました。 nullableを追加して修正しました フィールドへ:

    Schema::create('table_name', function (Blueprint $table) {
        ...
        $table->integer('some_id')->unsigned()->nullable();
        $table->foreign('some_id')->references('id')->on('other_table');
        ...
    });
    

    移行後、既存のすべての行にsome_id = NULLが含まれることに注意してください。 。

    UPD

    Laravel 7以降、同じことを行うためのより短い方法があります:

    $table->foreignId('some_id')->nullable()->constrained();
    

    nullableであることも非常に重要です constrainedの前に移動します 。

    詳細については、公式ドキュメント をご覧ください。



    1. TableGatewayを使用したZF2のLEFTJOIN

    2. 数値テーブルを作成してデータを入力するための最良の方法は何ですか?

    3. データベースから取得しますが、過去30日間のみ

    4. SQL Serverのsys.columns、sys.system_columns、およびsys.all_columnsの違い