Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pitanje u vezi MySQL-a

[es] :: MySQL :: Pitanje u vezi MySQL-a

[ Pregleda: 3880 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

batalule

Član broj: 39086
Poruke: 105
213.244.221.*



Profil

icon Pitanje u vezi MySQL-a15.12.2004. u 09:09 - pre 194 meseci
Imam neku tabelu u koju radim INSERT. Imam polje `Id` koje je UNIQUE Autoincrement i u njega ne upisujem vrednost vec to uradi sam MySQL. Medjutim sada mi treba vrednost tog polja nakon sto uradim INSERT. Jel ima neka fja u MySQL koja ce mi dati vrednost poslednjeg upisanog Id-ja?
thx
 
Odgovor na temu

Mihailo
Mihailo Đorić

Član broj: 1016
Poruke: 2875
*.air.tehnicom.net.



+1 Profil

icon Re: Pitanje u vezi MySQL-a15.12.2004. u 10:43 - pre 194 meseci
SELECT MAX(id) from ime_tabele;
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+10 Profil

icon Re: Pitanje u vezi MySQL-a15.12.2004. u 11:09 - pre 194 meseci
MySQL ima SQL funkciju LAST_INSERT_ID() koju mozes korsititi u sledecim SQL komandma. Detalje imas u uputstvu.
 
Odgovor na temu

Damjan S. Vujnovic
London, UK

Član broj: 30444
Poruke: 81
*.ceetel.co.yu.

Jabber: damjan@elitesecurity.org
ICQ: 68189289
Sajt: www.javasvet.net


Profil

icon Re: Pitanje u vezi MySQL-a15.12.2004. u 11:11 - pre 194 meseci
Koristi LAST_INSERT_ID(), max(id) je sporije i (moze da) ne radi u slucaju da postoji vise istovremenih konekcija.

D.
I love the smell of copyright violations in the morning. Smells like... freedom!
 
Odgovor na temu

Mihailo
Mihailo Đorić

Član broj: 1016
Poruke: 2875
*.air.tehnicom.net.



+1 Profil

icon Re: Pitanje u vezi MySQL-a15.12.2004. u 11:27 - pre 194 meseci
Ok, možda je brže LAST_INSERT_ID, iako mislim da je sigurnije SELECT(MAX) u ovom slučaju. Sećam se da je LAST_INSRT_ID imao čudne tripove kada se obriše poslednji red, no možda je to sada isrpavljeno. Ali odakle ti ideja da SELECT(MAX) neće raditi kada ima više konekcija?
 
Odgovor na temu

Damjan S. Vujnovic
London, UK

Član broj: 30444
Poruke: 81
*.ceetel.co.yu.

Jabber: damjan@elitesecurity.org
ICQ: 68189289
Sajt: www.javasvet.net


Profil

icon Re: Pitanje u vezi MySQL-a15.12.2004. u 11:38 - pre 194 meseci
Jedini nacin da se to natera da radi ispravno u slucaju vise simultanih konekcija je da se koriste transakcije, sto znaci koriscenje tabela koje podrzavaju transakcije (InnoDB), sto znaci pefrofmance issue. Sa druge strane LAST_INSERT_ID() radi ispravno za bilo koji tip tabela (pa i za one "brze" kao sto je MyISAM) i u slucaju vise simultanih konekcija.

Btw, argument sa brisanjem poslednjeg reda ne stoji (mada je LAST_INSERT_ID() oduvek ispravno radilo tacno ono sto pise u dokumentaciji) posto je OP pitao kako da dodje do vrednosti autoincrement polja torke koju je neposredno pre toga insertovao.

D.
I love the smell of copyright violations in the morning. Smells like... freedom!
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Pitanje u vezi MySQL-a15.12.2004. u 16:09 - pre 194 meseci
Citat:
Mihailo:  Ali odakle ti ideja da SELECT(MAX) neće raditi kada ima više konekcija?
vjerovatno je mislio na situaciju kad imas vise istovremenih konekcija i insertovanja u tabelu, pa onaj ko zeli da sazna last inserted id dobije MAX(id) od nekog drugog korisnika, koji je 0.001 sekundu kasnije insertovao nesto.
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

[es] :: MySQL :: Pitanje u vezi MySQL-a

[ Pregleda: 3880 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.