هي المعاملات المتداخلة المسموح بها في mysql؟
-
19-09-2019 - |
سؤال
هل يسمح 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
---
نصائح أخرى
من وثائق MySQL:
لا يمكن تداخل المعاملات. هذه نتيجة للالتزام الضمني الذي تم إجراؤه لأي معاملة حالية عند إصدار بيان بدء تشغيل أو أحد المرادفات الخاصة به. https://dev.mysql.com/doc/refman/5.7/ar/implicit-commit.html.
لا تنتمي إلى StackOverflow