Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

हम MySQL संग्रहीत प्रक्रिया के अंदर COMMIT लेनदेन कैसे कर सकते हैं?


जैसा कि हम जानते हैं कि START ट्रांजेक्शन से ट्रांजेक्शन शुरू हो जाएगा और ट्रांजेक्शन शुरू होने के बाद किए गए किसी भी बदलाव के लिए COMMIT का उपयोग किया जाता है। निम्नलिखित उदाहरण में, हमने START लेनदेन के साथ COMMIT के साथ एक संग्रहीत कार्यविधि बनाई है जो एक नया रिकॉर्ड सम्मिलित करेगी और निम्नलिखित डेटा वाली तालिका 'employee.tbl' में परिवर्तन करेगी -

mysql> Select * from employee.tbl;
+----+---------+
| Id | Name    |
+----+---------+
|  1 | Mohan   |
|  2 | Gaurav  |
|  3 | Rahul   |
|  4 | Saurabh |
+----+---------+
4 rows in set (0.00 sec)

उदाहरण

mysql> Delimiter //
mysql> Create Procedure st_transaction_commit()
    -> BEGIN
    -> START TRANSACTION;
    -> INSERT INTO employee.tbl(name) values ('Yash');
    -> UPDATE employee.tbl set name = 'Sohan' WHERE id = 3;
    -> COMMIT;
    -> END //
Query OK, 0 rows affected (0.03 sec)

अब जब हम इस प्रक्रिया को लागू करते हैं, तो यह तालिका कर्मचारी.tbl में मान को सम्मिलित और अद्यतन करेगा। यह परिवर्तन भी करेगा।

mysql> Delimiter ;
mysql> Call st_transaction_commit();
Query OK, 0 rows affected (0.17 sec)

mysql> Select * from employee.tbl;
+----+---------+
| Id | Name    |
+----+---------+
|  1 | Mohan   |
|  2 | Gaurav  |
|  3 | Sohan   |
|  4 | Saurabh |
|  5 | Yash    |
+----+---------+
5 rows in set (0.00 sec)

  1. हम एक MySQL संग्रहीत प्रक्रिया के अंदर रोलबैक लेनदेन कैसे कर सकते हैं?

    जैसा कि हम जानते हैं कि रोलबैक लेन-देन शुरू होने के बाद डेटाबेस में किए गए किसी भी बदलाव को वापस कर देगा। रोलबैक करने के लिए MySQL संग्रहीत कार्यविधि में हमें EXIT declare घोषित करना होगा हैंडलर। हम एक हैंडलर का उपयोग स्क्लेक्ससेप्शन या एसक्यूएल चेतावनियों के लिए कर सकते हैं। इसे एक उदाहरण की मदद

  1. हम MySQL संग्रहीत प्रक्रिया के अंदर START लेनदेन कैसे कर सकते हैं?

    जैसा कि हम जानते हैं कि START ट्रांजेक्शन ट्रांजेक्शन शुरू कर देगा और ऑटो-कमिट मोड को बंद कर देगा। निम्नलिखित उदाहरण में, हमने START लेनदेन के साथ एक संग्रहीत कार्यविधि बनाई है जो तालिका कर्मचारी में एक नया रिकॉर्ड सम्मिलित करेगी। mysql> Select * from employee.tbl; +----+---------+ | Id | Name &n

  1. एक MySQL संग्रहीत कार्यविधि इसके अंदर किसी अन्य MySQL संग्रहीत कार्यविधि को कैसे कॉल कर सकती है?

    यह बहुत संभव है कि एक MySQL संग्रहीत कार्यविधि इसके अंदर किसी अन्य MySQL संग्रहीत कार्यविधि को कॉल कर सकती है। इसे प्रदर्शित करने के लिए, हम एक उदाहरण ले रहे हैं जिसमें एक संग्रहीत कार्यविधि last_insert_id का पता लगाने के लिए किसी अन्य संग्रहीत कार्यविधि को कॉल करेगी। उदाहरण mysql> Create table e