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

MySQL सत्र ट्रांजैक्शन के बीच में समाप्त होने पर क्या होता है?

यदि सत्र ट्रांजैक्शन के बीच में समाप्त होता है (उपयोगकर्ता quit चलाता है या कनेक्शन बंद करता है), तो वर्तमान ट्रांजैक्शन MySQL द्वारा रोलबैक कर दिया जाता है। ट्रांजैक्शन में किए गए सभी डेटाबेस परिवर्तन हटा दिए जाते हैं। इसे अंतर्निहित रोलबैक (implicit rollback) कहते हैं।

उदाहरण:

प्रारंभिक डेटा (marks टेबल):

mysql> Select * from marks;
+------+---------+-----------+-------+
| Id   | Name    | Subject   | Marks |
+------+---------+-----------+-------+
| 1    | Aarav   | Maths     | 50    |
| 1    | Harshit | Maths     | 55    |
| 3    | Gaurav  | Comp      | 69    |
| 4    | Rahul   | History   | 40    |
| 5    | Yashraj | English   | 48    |
| 6    | Manak   | History   | 70    |
+------+---------+-----------+-------+

ट्रांजैक्शन शुरू, अपडेट, फिर सत्र समाप्त:

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)

mysql> UPDATE marks SET Name = 'Yash' Where id = 5;
Query OK, 1 row affected (0.06 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> quit;
Bye

नया सत्र शुरू करके जांच:

mysql> Select * from marks;
+------+---------+-----------+-------+
| Id   | Name    | Subject   | Marks |
+------+---------+-----------+-------+
| 1    | Aarav   | Maths     | 50    |
| 1    | Harshit | Maths     | 55    |
| 3    | Gaurav  | Comp      | 69    |
| 4    | Rahul   | History   | 40    |
| 5    | Yashraj | English   | 48    |  -- 'Yash' नहीं, मूल 'Yashraj' बरकरार
| 6    | Manak   | History   | 70    |
+------+---------+-----------+-------+

निष्कर्ष: सत्र समाप्ति (सामान्य या असामान्य) पर अनकमिटेड ट्रांजैक्शन हमेशा रोलबैक होता है। यह ACID के Durability और Atomicity गुण सुनिश्चित करता है - आंशिक ट्रांजैक्शन कभी स्थायी नहीं होता।

  1. - MySQL DECIMAL(x,0) की रेंज और स्टोरेज आवश्यकता

    DECIMAL डेटा टाइप BIGINT से बड़ी रेंज स्टोर कर सकता है। BIGINT की अधिकतम रेंज 18,446,744,073,709,551,615 है, जबकि DECIMAL(65,0) 65 अंकों तक की संख्या स्टोर कर सकता है। स्टोरेज आवश्यकता फॉर्मूला: StorageRequirementInBytes = (x/9) + remaining WHERE remaining = ROUND_UP((x%9) / 2) DECIMAL(65,0) अधिकतम

  1. - MySQL में EXCEPT का समकक्ष क्या है?

    आप MySQL में EXCEPT का उपयोग नहीं कर सकते, इसके बजाय NOT IN ऑपरेटर का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable    (    Number1 int    ); Query OK, 0 rows affected (0.71 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql>

  1. - MySQL में ALIAS शॉर्टहैंड क्या है?

    MySQL में कॉलम एलियास (alias) के लिए AS कीवर्ड वैकल्पिक है। आप इसे छोड़ सकते हैं। टेबल निर्माण mysql> CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(20) ); डेटा डालना mysql> INSERT INTO DemoTable(Name) VALUES(John); mysql> INSERT INTO DemoTable(N