यह इंजन पर निर्भर करता है - MyIsam और InnoDb अलग-अलग व्यवहार करते हैं।
MyIsam तालिकाओं के लिए, यदि तालिका में एक रिकॉर्ड पहले से मौजूद है (भले ही यह अभी तक प्रतिबद्ध नहीं है), उसी रिकॉर्ड का एक नियमित INSERT ( वही अद्वितीय कुंजी) दूसरे सत्र में डुप्लिकेट कुंजी त्रुटि की रिपोर्ट करता है - इसलिए INSERT IGNORE केवल त्रुटि को अनदेखा करता है और आगे बढ़ता है।
InnoDB तालिका पर, यदि रिकॉर्ड लॉक नहीं है, तो नियमित INSERT तुरंत डुप्लिकेट कुंजी त्रुटि की रिपोर्ट करें (INSERT IGNORE त्रुटि को छोड़ देगा और आगे बढ़ेगा)।
लेकिन अगर रिकॉर्ड दूसरे सत्र द्वारा लॉक किया गया है (उदाहरण के लिए रिकॉर्ड डाला गया है लेकिन अभी तक कमिट नहीं किया गया है, या रिकॉर्ड एक द्वारा लॉक किया गया है अद्यतन करें या हटाएं या अद्यतन आदेश के लिए चयन करें), INSERT कमांड "लटका" होगा और तब तक प्रतीक्षा करेगा जब तक कि अन्य सत्र लॉक को हटा नहीं देगा (COMMIT या ROLLBACK द्वारा)। फिर, यदि लॉक हटाने के बाद भी रिकॉर्ड मौजूद है, तो INSERT त्रुटि की रिपोर्ट करेगा (INSERT IGNORE त्रुटि को अनदेखा करेगा), लेकिन यदि रिकॉर्ड मौजूद नहीं है, तो INSERT इस रिकॉर्ड को तालिका में जोड़ देगा।
IGNORE कीवर्ड केवल यह कहता है "किसी भी त्रुटि के मामले में बस इसे अनदेखा करें", लेकिन यह लॉकिंग व्यवहार को प्रभावित नहीं करता है।