sql >> Databáze >  >> RDS >> Mysql

INSERT IGNORE pomocí Laravel's Fluent

Vyzkoušejte toto kouzlo ve svém modelu:

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));
}

Použijte takto:

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

Je to skvělý způsob, jak zabránit porušení omezení, ke kterému může dojít s firstOrCreate ve víceuživatelském prostředí, pokud byla vlastnost 'name' jedinečným klíčem.



  1. Vyberte položky z různých zdrojů a seřaďte je podle data

  2. JSON_ARRAY_APPEND() – Připojit hodnoty k poli JSON v MySQL

  3. Vysoká dostupnost při nízkém rozpočtu – nasazení minimálního klastru MySQL Galera se dvěma uzly

  4. MySQL Server na MAMP-Windows se nespustí