Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql транзакция:извършване и връщане назад

1) Всички промени, които правите, са видими в рамките на една и съща транзакция. Ако го направите

START TRANSACTION;
INSERT INTO MyTable VALUES ('Hi there');
SELECT * FROM MyTable;

вашият изход ще включва „Здравей“. Но ако стартирате втора връзка с база данни, новият ред няма да се показва, докато не извършите транзакцията си от първата връзка. Опитайте да играете с това, като използвате две връзки към базата данни, като използвате командния ред.

Не виждате ефекта във вашия уебсайт, защото не можете да имате една и съща транзакция в рамките на две връзки с база данни (нова връзка с db ще бъде направена в началото на вашата заявка).

2) Всички транзакции, които не са ангажирани, ще бъдат върнати, когато връзката с базата данни бъде затворена. Така че, ако това са единствените ви две заявки, няма разлика. Има обаче разлика между

START TRANSACTION;
INSERT INTO MyTable VALUES ('This one would be discarded on rollback');
ROLLBACK;
INSERT INTO MyTable VALUES ('This one will be permanent because not within transaction');  

3) Да, всички те са еднакви.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изберете редове, където стойността на колоната НЕ Е NULL с помощта на ActiveRecord на CodeIgniter?

  2. Как мога да задам формат за автоматично увеличение на 0001 в MySQL?

  3. 12 Най-добри практики за сигурност на MySQL/MariaDB за Linux

  4. Microsoft SQL Server, еквивалент на MySQL REGEXP

  5. Пагиниране на записи по проблем от страна на клиента