क्या MySQL नेस्टेड लेनदेन के उपयोग की अनुमति देता है?MySQL में निहित लेनदेन की अनुमति है?
उत्तर
InnoDB
SAVEPOINTS
का समर्थन करता है।
आप निम्न कर सकते हैं:
CREATE TABLE t_test (id INT NOT NULL PRIMARY KEY) ENGINE=InnoDB;
START TRANSACTION;
INSERT
INTO t_test
VALUES (1);
SELECT *
FROM t_test;
id
---
1
SAVEPOINT tran2;
INSERT
INTO t_test
VALUES (2);
SELECT *
FROM t_test;
id
---
1
2
ROLLBACK TO tran2;
SELECT *
FROM t_test;
id
---
1
ROLLBACK;
SELECT *
FROM t_test;
id
---
धन्यवाद, मैं भविष्य में संदर्भ के लिए यह ध्यान में रखना होगा। –
यह सवाल नहीं था, "savepoints" एक बात है "नेस्टेड लेनदेन" समर्थन असली सवाल था। [यह लिंक] देखें (http://docs.oracle.com/cd/E17076_02/html/gsg_txn/C/nestedtxn.html) – arod
@arod: क्या आप कृपया एकल-थ्रेडेड संदर्भ में अंतर को समझा सकते हैं? धन्यवाद! – Quassnoi
आप php का उपयोग कर, तो आप https://github.com/Enelar/phpsql में दिलचस्प यह अन्य कनेक्टर्स के mysql और pgsql, और बढ़ाई समर्थन हो सकता है।
function TransferMoney()
{ // Nested transaction code could not even know that he nested
$trans3 = db::Begin();
if (!db::Query("--Withdraw money from user", [$uid, $amount], true))
return $trans3->Rollback();
db::Query("--Deposit money to system");
return $trans3->Commit();
}
$trans = db::Begin();
db::Query("--Give item to user inventory");
$trans2 = $trans->Begin();
$trans2->Query("--Try some actions and then decide to rollback");
$trans2->Rollback();
// Commit or rollback depending on money transfer result
return $trans->Finish(TransferMoney());
:
लेनदेन नेस्ट नहीं किया जा सकता। जब आप स्टार्ट ट्रांज़ेक्शन स्टेटमेंट या उसके समानार्थी शब्द जारी करते हैं तो यह किसी भी मौजूदा लेनदेन के लिए किए गए निहित प्रतिबद्धता का परिणाम है। https://dev.mysql.com/doc/refman/5.7/en/implicit-commit.html
- 1. लेनदेन के भीतर MySQL लेनदेन
- 2. लेनदेन MySQL
- 3. MySQL ट्रिगर में लेनदेन आईडी
- 4. कई PHP अनुरोधों में MySQL लेनदेन
- 5. mysql प्रतिबद्धता और लेनदेन
- 6. MySQL लेनदेन और ट्रिगर
- 7. PHP और SQLSRV ड्राइवर में "नए लेनदेन की अनुमति नहीं है" त्रुटि क्या है?
- 8. MySQL: लेनदेन बनाम लॉकिंग टेबल्स
- 9. लेनदेन की याददाश्त क्या है?
- 10. नए लेनदेन की अनुमति नहीं है क्योंकि सत्र में चल रहे अन्य धागे LINQ से Entity
- 11. लेनदेन निलंबन MySQL में कैसे काम करता है?
- 12. मध्यम ट्रस्ट में प्रतिबिंब अनुमति की अनुमति है?
- 13. google.maps.Size में किन इकाइयों की अनुमति है?
- 14. schema_version में चयन की अनुमति नहीं है?
- 15. डेटाबेस लेनदेन की निगरानी कैसे करें?
- 16. क्या आपको MySQL में तालिका नामों के रूप में संख्याओं का उपयोग करने की अनुमति है?
- 17. निहित साझाकरण क्या है?
- 18. MySQL में लेनदेन - वापस रोल करने में असमर्थ
- 19. लेनदेन के अंदर केवल पूर्वजों के प्रश्नों की अनुमति है, इसके साथ कैसे निपटें?
- 20. MySQL लेनदेन का परीक्षण कैसे करें?
- 21. डुप्लिकेट कुंजी त्रुटि रद्द/रोलबैक mysql लेनदेन
- 22. डुप्लिकेट की अनुमति नहीं होने पर MySQL एकाधिक डालें।
- 23. एक उपयोगकर्ता की अनुमति देने का केवल एक mysql दृश्य
- 24. MySQL: अन्यथा अक्षम कॉलम पर क्वेरी की अनुमति दें?
- 25. mysql pdo लेनदेन और सत्र भंडारण
- 26. संख्यात्मक प्रकारों के बीच अंकगणित की अनुमति देने के लिए निहित रूपांतरण कैसे सेट करें?
- 27. ExecuteNonQuery को लेनदेन रखने की आवश्यकता है
- 28. जावा क्लास में कोड की अधिकतम लाइनों की अनुमति है?
- 29. जावास्क्रिप्ट में किस तारीख की तारीखों की अनुमति है?
- 30. SQLite लेनदेन के रूप में की उम्मीद
mysql नेस्टेड लेनदेन का समर्थन नहीं करता – hamedkh