Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

INSERT पर डुप्लिकेट प्रविष्टियों को चुपचाप अनदेखा/हटाने के लिए ट्रिगर

MySQL 5.5 से पहले। ट्रिगर के अंदर डालने को रोकना संभव नहीं था। वहां जहां कुछ बदसूरत काम करते हैं लेकिन कुछ भी नहीं जो मैं अनुशंसा करता हूं। 5.5 के बाद से आप SIGNAL का उपयोग कर सकते हैं करने के लिए।

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. MySQL में लॉग फाइल कैसे देखें?

  2. MySQL - गिराए गए प्रदर्शन स्कीमा डेटाबेस को पुनर्प्राप्त करें

  3. mysql को आंतरिक या बाहरी कमांड, ऑपरेट करने योग्य प्रोग्राम या बैच के रूप में मान्यता नहीं है

  4. किसी अन्य सर्वर पर डेटाबेस से कैसे कनेक्ट करें

  5. MYSQLi त्रुटि:उपयोगकर्ता के पास पहले से ही 'max_user_connections' से अधिक सक्रिय कनेक्शन हैं