एक विधि केवल सशर्त एकत्रीकरण का उपयोग करती है:
insert into users_settings (user_id, key)
select user_id, 'app_reminder'
from users_settings
group by user_id
having sum(key = 'app_reminder') = 0;
आप एक अधिक सामान्य समाधान चाहते हैं। यदि आप यह सुनिश्चित करना चाहते हैं कि उपयोगकर्ता/कुंजी जोड़े कभी भी डुप्लिकेट न हों, तो उन स्तंभों पर एक अद्वितीय बाधा या अनुक्रमणिका बनाएं:
alter table users_settings add constraint unq_users_settings_user_id_key
unique (user_id, key);
फिर, आप on duplicate key update
. का उपयोग करके पंक्तियों को सम्मिलित करना छोड़ सकते हैं :
insert into users_settings (user_id, key)
select distinct user_id, 'app_reminder'
from users_settings
on duplicate key update user_id = values(user_id);
update
कुछ नहीं करता, क्योंकि मूल्य वही है। MySQL इन्सर्ट करना छोड़ देता है और कोई एरर नहीं देता है।