Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

INSERT IGNORE menggunakan Laravel's Fluent

Coba keajaiban ini, dalam model Anda:

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

Gunakan seperti ini:

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

Ini adalah cara yang bagus untuk mencegah pelanggaran batasan yang mungkin terjadi dengan firstOrCreate di lingkungan multi-pengguna, jika properti 'nama' itu adalah kunci unik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa menggunakan bin2hex saat memasukkan data biner dari PHP ke MySQL?

  2. Mengembalikan gumpalan dengan json

  3. Ekspor data MySQL ke Excel dalam PHP

  4. InnoDB mySQL tidak dapat mengatur ON DELETE SET DEFAULT'. Bagaimana mengatur?

  5. Penyeimbangan Beban MySQL &MariaDB dengan ProxySQL