Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przerywanie transakcji
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
phpion
Witam,
nie mam pojęcia co się dzieje. W transakcji wykonuję X INSERTów do bazy danych. Zawsze otrzymuję błąd:
Cytat
current transaction is aborted, commands ignored until end of transaction block

Gdy pozbędę się transakcji puszczając wszystkie zapytania jak leci - wszystko się dodaje poprawnie (każdy rekord z każdego zapytania trafia do bazy). Co więcej: po komunikacie błędu mam zapytanie, które to powoduje - wykonuję to zapytanie ręcznie i nie ma żadnego problemu z jego wykonaniem. Nie wklejam tutaj zapytań bo to proste INSERTY.

Co to może być?
Zbłąkany
Może limit danych wsadzanych do bazy? Ale to musiałbyś tak na raz sporo tego wrzucać, by przerwało transakcję. Bardziej celowałbym w to, że któraś relacja (klucz obcy) się nie zgadza i dlatego wszystko szlag trafia. Może podczas transakcji jest z tym problem? Sprawdziłbym też pola typu SERIAL smile.gif
Mógłbyś zerknąć w logi i sprawdzić, czy nie ma tam niczego podejrzanego?
phpion
Dzięki za odpowiedź. Okazało się, że wina leży po stronie frameworka Kohana, który to po każdym insercie próbuje odczytać SELECT LASTVAL(). W momencie dodawania rekordów z jawnym ustawieniem klucza głównego (nie poprzez pole SERIAL) następuje błąd (LASTVAL() not defined) i transakcja jest przerywana.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.