sql >> Database >  >> RDS >> Mysql

Trigger om dubbele vermeldingen op INSERT . stil te negeren/verwijderen

Voor mysql 5.5. het was niet mogelijk om een ​​insert in een trigger te stoppen. Er waren een aantal lelijke werkjes, maar niets dat ik zou aanraden. Vanaf 5.5 kun je SIGNAL gebruiken om het te doen.

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. MySQL:de SELECT zou meer dan MAX_JOIN_SIZE rijen onderzoeken

  2. Hoe helpt databaseontwerp docenten, lessen en studenten te organiseren?

  3. MySQL Database Service – Nieuwe HeatWave-innovaties

  4. Laravel 4 migreren basistabel niet gevonden