sql >> Databasteknik >  >> RDS >> Mysql

Utlösare för att tyst ignorera/ta bort dubbletter av poster på INSERT

Före mysql 5.5. det var inte möjligt att stoppa en insats inuti en avtryckare. Det finns några fula arbeten men inget jag skulle rekommendera. Sedan 5.5 kan du använda SIGNAL att göra det.

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. Lagrad procedur för att hämta serverlagringsinformation i servern

  2. Förstagångsdatabasdesign:är jag överteknik?

  3. Vad är skillnaden mellan postgres och postgresql_psycopg2 som en databasmotor för django?

  4. Lösningar för INFOGA ELLER UPPDATERA på SQL Server