sql >> Database teknologi >  >> RDS >> Mysql

INDSÆT IGNORER ved hjælp af Laravel's Fluent

Prøv denne magi i din model:

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

Brug sådan her:

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

Dette er en fantastisk måde at forhindre overtrædelser af begrænsninger, der kan forekomme med firstOrCreate i et flerbrugermiljø, hvis egenskaben 'navn' var en unik nøgle.



  1. Sådan importeres en JSON-fil til en SQL Server-tabel

  2. Opret en visning med kolonne num_rows - MySQL

  3. Hvad returnerer en vellykket MySQL DELETE? Hvordan kontrollerer man, om SLETNING lykkedes?

  4. SQL-forespørgsel til trætabel