sql >> Databáze >  >> RDS >> Mysql

Spustit tiché ignorování/smazání duplicitních záznamů při INSERT

Před mysql 5.5. nebylo možné zastavit vložku uvnitř spouště. Jsou tam nějaké ošklivé práce, ale nic, co bych doporučil. Od 5.5 můžete používat SIGNAL udělat to.

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. Funkce NLS_CHARSET_DECL_LEN() v Oracle

  2. Import dat z databáze MySQL do datového rámce Pandas včetně názvů sloupců

  3. Spojovníky v názvech sloupců v MySQL DB

  4. JDBC vrací výjimku MySQLSyntaxError se správným příkazem