ON DUPLICATE KEY UPDATE
. के साथ , आप किसी अन्य तालिका में सम्मिलित नहीं कर सकते - न ही कोई वैकल्पिक कार्य उपलब्ध है।
दो कस्टम/वैकल्पिक तरीकों से आप इसे पूरा कर सकते हैं:
-
stored procedure
का उपयोग करना जैसा कि इस प्रश्न के स्वीकृत उत्तर में उल्लिखित है:MySQL ON DUPLICATE KEY ऑडिट या लॉग टेबल में डालें -
एक
trigger
बनाना जिसने हरINSERT
. को लॉग किया आपकी तालिका के लिए किसी अन्य तालिका में और किसी भी डुप्लिकेट के लिए "लॉग" से भरी तालिका को क्वेरी करना।
कुछ ऐसा ही काम करना चाहिए:
CREATE TABLE insert_logs (
id int not null
);
delimiter |
CREATE TRIGGER insert_logs_trigger BEFORE INSERT ON your_table
FOR EACH ROW BEGIN
INSERT INTO insert_logs SET id = NEW.id;
END;
|
तालिका में डुप्लिकेट की सूची प्राप्त करने के लिए, आप हमें कर सकते हैं:
SELECT id FROM insert_logs HAVING COUNT(id) > 1 GROUP BY id;