चूंकि इन दोनों इंसर्ट को स्वतंत्र रूप से निष्पादित किया जाता है, एक साथ चलने वाला एक अन्य प्रोग्राम डेटाबेस को उस स्थिति में देख सकता है जहां पहला इंसर्ट किया जाता है लेकिन दूसरा नहीं होता है।
यह एक समस्या है या नहीं यह एप्लिकेशन लॉजिक पर निर्भर करता है। आपके मामले में अतिरिक्त जानकारी के बिना बताना मुश्किल है। शायद ऩही। एक वित्तीय लेनदेन जिसमें दो खाते शामिल हैं, एक उदाहरण है जहां यह है एक समस्या:आप नहीं चाहते कि किसी भी समय सभी खाते की शेष राशि का योग गलत हो।
यदि आपको लगता है कि आपको इसकी आवश्यकता है, तो आप प्रदर्शन की कीमत पर ऑपरेशन को परमाणु बना सकते हैं:दूसरा प्रोग्राम या तो पहले इंसर्ट से पहले या दूसरे इंसर्ट के बाद डेटाबेस को देखेगा। यह इस तरह काम करता है:
$result = FALSE;
if (mysql_query('BEGIN')) {
if (mysql_query($query1) &&
mysql_query($query2))
$result = mysql_query('COMMIT'); // both queries looked OK, save
else
mysql_query('ROLLBACK'); // problems with queries, no changes
}
स्टोरेज इंजन को लेन-देन का समर्थन करना होता है, यानी, इसे InnoDB . अन्यथा यह चुपचाप काम नहीं करेगा।