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

Pemicu untuk mengabaikan/menghapus entri duplikat secara diam-diam di INSERT

Sebelum mysql 5.5. tidak mungkin menghentikan sisipan di dalam pemicu. Ada di mana beberapa pekerjaan jelek di sekitar tetapi tidak ada yang saya rekomendasikan. Sejak 5.5 Anda dapat menggunakan SIGNAL untuk melakukannya.

delimiter //
drop trigger if exists aborting_trigger //
create trigger aborting_trigger before insert on t
for each row
begin
  set @found := false;
  select true into @found from t where a=new.a and b=new.b;

  if @found then
    signal sqlstate '45000' set message_text = 'duplicate insert';
    end if;
  end   //

delimiter ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menambahkan serangkaian string dalam penambahan id di tabel apa pun?

  2. MySQL:Pilih Entri Acak, tetapi Bobot Menuju Entri Tertentu

  3. Ekspor data MySQL berubah waktu

  4. Buat fungsi dengan argumen opsional di MySQL

  5. mySQL Stored Function untuk membuat siput