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;