মাইএসকিউএলে নেস্টেড লেনদেনের অনুমতি রয়েছে কি?


উত্তর:


78

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
---

20
এটি প্রশ্ন ছিল না, "সেভপয়েন্টস" একটি জিনিস "নেস্টেড লেনদেন" সমর্থনটাই আসল প্রশ্ন। এই লিঙ্কটি
2'12

4
@ আরোদ: আপনি কি দয়া করে একক থ্রেডযুক্ত প্রসঙ্গে পার্থক্যটি ব্যাখ্যা করতে পারেন? ধন্যবাদ!
কাসনসুই

@ কাসনোই আমি বিশ্বাস করি যে ডিবিকে জারি করা আদেশগুলি আলাদা হয়, তাই না? আমার ভুল হতে পারে
2od3 এ আর্ড করুন

4
@ কাসনোই আমার দেওয়া লিঙ্কটি দেখানো ছিল যে নেস্টেড লেনদেনগুলি এখন সমর্থিত। এখন, সেভপয়েন্টগুলি শক্তিশালী, তবে তারা নেস্টেড বিগইন, কমিট / রোলব্যাকের মতো নয় (প্রগ্রেমেটিকভাবে বলছেন, কমান্ড-ওয়াইজ) যদিও আপনি বেশ নিশ্চিত যে "একক থ্রেডযুক্ত প্রসঙ্গে" সেগুলি সমতুল্য। আমি প্রশ্নটি সরাসরি সমাধান করার ইচ্ছা করেছি (3 বছর পরে :) ...
আর্ড করুন

12
@ আরোদ: আপনি জানেন যে আপনি যে লিঙ্কটি দিয়েছিলেন তার মাইএসকিউএল এর সাথে কোনও সম্পর্ক নেই, তাই না?
কাসনসুই

39

মাইএসকিউএল ডকুমেন্টেশন থেকে:

লেনদেন বাসা বাঁধতে পারে না। এটি কোনও START লেনদেনের বিবৃতি বা এর কোনও প্রতিশব্দ ইস্যু করার সময় যে কোনও বর্তমান লেনদেনের জন্য সম্পাদিত অন্তর্নিহিত প্রতিশ্রুতির ফলাফল। https://dev.mysql.com/doc/refman/5.7/en/implic-commit.html

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.