Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मैसकल ट्रांजैक्शन:कमिट और रोलबैक

1) आपके द्वारा किए गए सभी परिवर्तन एक ही लेन-देन में दिखाई देते हैं। अगर आप करते हैं

START TRANSACTION;
INSERT INTO MyTable VALUES ('Hi there');
SELECT * FROM MyTable;

आपके आउटपुट में 'हाय वहाँ' शामिल होगा। लेकिन अगर आप दूसरा डेटाबेस-कनेक्शन शुरू करते हैं तो नई पंक्ति तब तक प्रदर्शित नहीं होगी जब तक कि आप पहले कनेक्शन के भीतर से अपना लेनदेन नहीं कर लेते। कमांड-लाइन का उपयोग करके दो डेटाबेस-कनेक्शन का उपयोग करके इसके साथ खेलने का प्रयास करें।

आप अपनी वेबसाइट में प्रभाव नहीं देख रहे हैं क्योंकि आप दो डेटाबेस-कनेक्शन के भीतर एक ही लेन-देन नहीं कर सकते हैं (आपके अनुरोध की शुरुआत में एक नया डीबी-कनेक्शन बनाया जाएगा)।

2) डेटाबेस के साथ कनेक्शन बंद होने पर सभी लेन-देन जो प्रतिबद्ध नहीं हैं, उन्हें वापस ले लिया जाएगा। तो यदि ये आपके केवल दो प्रश्न हैं, तो कोई अंतर नहीं है। हालांकि इसमें अंतर है

START TRANSACTION;
INSERT INTO MyTable VALUES ('This one would be discarded on rollback');
ROLLBACK;
INSERT INTO MyTable VALUES ('This one will be permanent because not within transaction');  

3) हाँ, ये सब एक जैसे हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सर्वलेट से डेटा एक्सेस करना

  2. मैं समवर्ती MySQL कनेक्शन के बारे में उलझन में हूँ

  3. डेटाबेस से समान देशांतर और अक्षांश प्राप्त करना

  4. mysql पदानुक्रम स्व-जुड़ें, सभी उपश्रेणियों को पुनः प्राप्त करें

  5. जावा में चुनिंदा क्वेरी के लिए तैयार कथन का उपयोग कैसे करें?