Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Kích hoạt để âm thầm bỏ qua / xóa các mục nhập trùng lặp trên INSERT

Trước mysql 5.5. không thể dừng việc chèn vào bên trong một bộ kích hoạt. Ở đó, nơi có một số cách làm việc xấu xí nhưng không có gì tôi muốn giới thiệu. Kể từ 5.5, bạn có thể sử dụng SIGNAL để làm điều đó.

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. Chèn vào lựa chọn và cập nhật trong một truy vấn

  2. Sử dụng SELECT INTO OUTFILE trong MySQL

  3. 1052:Cột 'id' trong danh sách trường không rõ ràng

  4. Khắc phục sự cố Lỗi kết hợp bất hợp pháp các đối chiếu trong mysql

  5. Chế nhạo truy vấn chèn vào Cơ sở dữ liệu MySQL bằng Moq