इसका समाधान लेन-देन का उपयोग करना होगा , जो "सभी या कुछ नहीं" व्यवहार प्राप्त करने की अनुमति देता है।
विचार निम्नलिखित है:
- आप एक लेन-देन शुरू करते हैं
- आप अपनी प्रविष्टियां/अपडेट करते हैं
- यदि सब कुछ ठीक है, तो आप लेन-देन करते हैं; जो इस लेन-देन के दौरान आपके द्वारा किए गए सभी कार्यों को सहेज लेगा
- यदि नहीं, तो आप लेन-देन को वापस लेते हैं; और आपने इसमें जो कुछ भी किया वह रद्द कर दिया जाएगा।
- यदि आप प्रतिबद्ध नहीं हैं और डिस्कनेक्ट नहीं करते हैं (यदि आपकी PHP स्क्रिप्ट मर जाती है, उदाहरण के लिए) , कुछ भी प्रतिबद्ध नहीं किया जाएगा, और आपने जो लेन-देन नहीं किया है, वह स्वचालित रूप से वापस ले लिया जाएगा।
अधिक जानकारी के लिए, आप 12.4.1 पर एक नज़र डाल सकते हैं। लेन-देन शुरू करें, कमिट करें और रोलबैक सिंटैक्स करें , MySQL के लिए।
ध्यान दें कि लेन-देन केवल कुछ DB इंजनों के लिए उपलब्ध हैं:
- MyISAM लेन-देन का समर्थन नहीं करता
- InnoDB करता है (उदाहरण के लिए, यह विदेशी कुंजियों का भी समर्थन करता है -- यह MyISAM से कहीं अधिक उन्नत है) ।