Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zagnieżdżone wycofywanie transakcji między dwoma punktami zapisu?

Savepoints nie zrobi tego, co chcesz. Kiedy wracasz do punktu zapisu, wszystko po tym punkcie jest przywracane, niezależnie od tego, czy później utworzono punkty zapisu.

Pomyśl o punktach zapisu jak o „stosie”. Nie możesz wyciągnąć czegoś ze środka stosu, musisz usunąć wszystko do żądanej warstwy.

Prawdopodobnie szukasz transakcji autonomicznych. Żadna z baz danych, z których chcesz korzystać, nie obsługuje ich. W PostgreSQL można to obejść za pomocą modułu dblink, aby nawiązać nowe połączenie z bazą danych i pracować z nią; zobacz http://www.postgresql.org/docs/current/static/ dblink.html . Nie wiem, jakie rozwiązania oferują MySQL lub SQLite, ale Google pomoże teraz, gdy znasz termin, którego szukasz.

Zalecam znalezienie sposobu na obejście tego wymagania projektowego aplikacji, jeśli to możliwe. Niech Twoja aplikacja użyje dwóch połączeń z bazą danych i dwóch transakcji, aby wykonać to, czego potrzebujesz, dbając o koordynację tych dwóch zgodnie z wymaganiami.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql error:ERROR 1018 (HY000):Nie można odczytać katalogu '.' (błd:13)

  2. Przetwarzaj klauzulę SELECT zapytań SQL do tablicy PHP

  3. Błąd w zagnieżdżonym podzapytaniu w DQL:Klasa „(” nie jest zdefiniowana)

  4. Doctrine2:Nie można wybrać jednostki poprzez zmienne identyfikacyjne bez wybrania przynajmniej jednego aliasu jednostki głównej

  5. Konkatenacja ciągów NHibernate / MySQL