Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mysql insert id a trigger
blawat
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 17.03.2006

Ostrzeżenie: (0%)
-----


witam,

mam pytanko bo niestety nie mam mozliwosci w obecnej chwili sprawdzic a w google nie znalazlem za wiele :/

mam 2 tabelki a i b

na tabeli a zalozony trigger dzialajacy after insert i dodajacy dane do tabeli b

pytanko 1. mysql insert id zwroci nam nam ktore id? wsadzone do tabeli a czy wsadzone przez trigger do tabeli b?

pytanko 2. czy wynik zwrocenego id bedzie taki sam jak zapytanie insert bedzie w transakcji?

pytanko 3. jakie bedzie id jesli trigger bedzie before insert?

(IMG:style_emoticons/default/smile.gif)

pozdrawiam i dziekuje za odpowiedzi
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
brzuchalski
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 1
Dołączył: 2.01.2008

Ostrzeżenie: (0%)
-----


Z tego co ja wiem to mysql_insert_id zawsze zwraca wartość klucza primary z tabeli do której szedł ostatni insert w obrębie całej bazy także:
- mysql_insert_id wywoluje po prostu SELECT LAST_INSERT_ID() co daje id ostatnio inserttowanego rekordu w bazie
- jeżeli w międzyczasie pomiędzy mysql_query('INSERT ....') a mysql_insert_id ktoś wykona na bazie inny INSERt np. do tabeli gdzie kluczem PRIMARY jest np. tekst to może się okazać że zamiast id dostaniesz tekst
oczywiście dzieje się tak tylko przy obciążonej bazie gdzie może lecieć kilkanaście, -dziesiąt INSERT'ów / sek, jedyna rozwiązanie jakie mi akurat pomogło to niestety ale SELECT MAX(kolumna PRIMARY) na konkretnej tablicy
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 04:38