sql >> Databasteknik >  >> RDS >> Mysql

INFOGA IGNOREra med Laravel's Fluent

Prova denna magi, i din modell:

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

Använd så här:

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

Det här är ett utmärkt sätt att förhindra överträdelser av begränsningar som kan inträffa med firstOrCreate i en miljö med flera användare, om den "name"-egenskapen var en unik nyckel.



  1. FEL:kunde inte komma åt filen "$libdir/plpython2" - FEL:kunde inte komma åt filen "$libdir/plpython3"

  2. Spring data JPA:få Inga alias hittades i resultat tuple! fel vid körning av anpassad fråga

  3. Hur man använder Decode i Oracle

  4. Visa trädmenyn för den valda föräldern