![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 11.04.2002 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
wlasnie pisze gre internetowa i potrzebne sa mi tam transakcjie z sqla ale niebardzo ma mi kto w tym pomoc, a nie znam na tyle angielskiego zeby angielskie artykuly czy ksiazki poczytac, licze ze pomozecie mi z tym ewentulanie moze ktos ma jakis inny problem na rozwiazenie takiego problemu:
Cytat Robie gre internetowa (sportowa) i mam 3 tabele w bazie:
1) nazwa, kasa itd 2) sklad 3) historia transferow i teraz chce zrobic transfery, tylko przy 1 transferze mam 3 zapytania do bazy (2 * inser i 1* update) i wlasnie nie wiem jak to zrobic tak zebym mial pewnosc ze mi dodalo czy zupdatowalo table, tzn wiem jak sprawdzic czy np. dodal do bazy, ale nie wiem co zrobic jak nie doda. Najlepeiej dam przyklad: Gosciu kupuje sobie kogos za iles tam kasy i teraz dodaje mu tego kogos do tabeli sklad, dodaje mu ten transfer do tabeli transfery i updatuje kase i problem moze byc jak np przy tym ostatnim zapytaniu cos sie wywali i kasa zostanie sprzed transferu. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
Schemat takiej funkcji wyglada tak:
1. Zaczynasz transakcje (BEGIN) 2. Zmieniasz dane ktore chcesz, sprawdzasz poprawnosc tych zmian 3. Jesli zmiany sa poprawne to zamykasz transakcje (COMMIT), albo jesli uwazasz ze dane sa be to wtedy wycofujesz transakcje (ROLLBACK). Uwagi jesli korzystasz z MySQL-a: - wlacz "tryb transakcyjny" poprzez SET AUTOCOMMIT=0 - wszystkie tabele zmieniane w transakcji musza byc typu wspierajacego transakcje, w praktyce oznacza to InnoDB |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 20:27 |