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

LaravelのFluentを使用してIGNOREを挿入

    モデルでこの魔法を試してみてください:

    public static function insertIgnore($array){
        $a = new static();
        if($a->timestamps){
            $now = \Carbon\Carbon::now();
            $array['created_at'] = $now;
            $array['updated_at'] = $now;
        }
        DB::insert('INSERT IGNORE INTO '.$a->table.' ('.implode(',',array_keys($array)).
            ') values (?'.str_repeat(',?',count($array) - 1).')',array_values($array));
    }
    

    次のように使用します:

    Shop::insertIgnore(array('name' => 'myshop'));
    

    これは、「name」プロパティが一意のキーである場合に、マルチユーザー環境でfirstOrCreateで発生する可能性のある制約違反を防ぐための優れた方法です。



    1. MariaDB JSON_SEARCH()の説明

    2. SQLテーブルから行のパーセンテージを選択しますか?

    3. MySQL安全な更新モードを使用していて、WHEREなしでテーブルを更新しようとしました

    4. SQL:行を検索し、一致する列の数に従って並べ替えますか?