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

Trigger for lydløst at ignorere/slette duplikerede poster på INSERT

Før mysql 5.5. det var ikke muligt at stoppe en indsats inde i en trigger. Der hvor nogle grimme arbejde rundt, men intet, jeg vil anbefale. Siden 5.5 kan du bruge SIGNAL at gøre 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. 10 nyttige Microsoft Access-genveje, når du arbejder med kontrolelementer på formularer og rapporter

  2. Sammenligning af MariaDB Enterprise Backup med ClusterControl Backup Management

  3. Effektiv overvågning af MySQL-replikering med SCUMM-dashboards:Del 2

  4. Kan ikke kompilere GI 12.1.0.2 og segmenteringsfejl