Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Uruchom, aby po cichu zignorować / usunąć zduplikowane wpisy na INSERT

Przed mySQL 5.5. nie można było zatrzymać wkładki wewnątrz spustu. Tam, gdzie jakieś brzydkie prace, ale nic, co poleciłbym. Od wersji 5.5 możesz używać SIGNAL aby to zrobić.

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. Rodzaj trójkąta w MySQL

  2. Uporządkować według daty (varchar)?

  3. Indeksy MySQL 5.0 — unikatowe kontra nieunikalne

  4. Jak pobrać 2 razy w MYSQL PDO bez FETCHALL

  5. Jak porównać dane wejściowe z danymi mysql z php/sql?