Mysql
 sql >> база данни >  >> RDS >> Mysql

INSERT IGNORE с помощта на Laravel's Fluent

Опитайте тази магия във вашия модел:

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

Това е чудесен начин за предотвратяване на нарушения на ограниченията, които могат да възникнат с firstOrCreate в многопотребителска среда, ако това свойство „name“ е уникален ключ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да отрежа водещия и задния цитат от MySQL ред?

  2. Няма достъп до MySQL, след като автоматично генерира временна парола

  3. разширяване на класа на PDO

  4. Doctrine 2 DQL MySQL еквивалентен на ROUND()?

  5. PDO bind_param е недефиниран метод