Srodne teme
14.04.2024. Re: Gde je Kejt? (samo pogrešni odgovori)
18.08.2001. error 2002:
09.01.2002. pomoc oko foruma
14.08.2002. MySql Probelem
21.10.2002. mysql na slacku
31.01.2003. MySQL i apache
21.01.2003. MySQL problem
28.07.2003. Perl & MySql
30.08.2003. RedHat 9 i PHP + MySQL
04.10.2003. php&mysql problem
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

LAST_INSERT_ID() (MySql)

[es] :: MySQL :: LAST_INSERT_ID() (MySql)

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

goran33
Goran Milic
Beograd

Član broj: 6040
Poruke: 46
*.net.yu

ICQ: 170738591


Profil

icon LAST_INSERT_ID() (MySql)30.10.2002. u 20:44 - pre 261 meseci
Koji je najlakši način da iz tabele slike "izvadim" poslednji upisani id, koji je primarni ključ, a njegova vrednost je jednaka poslednjem upisanom polju id iz neke druge tabele (npr. osoba)...

Kod za automatski unos id u tabelu slike je sledeći:

mysql_query ("INSERT INTO slike
(id, src, filename, filesize, filetype)
VALUES
(LAST_INSERT_ID(),'$data', '$src_name', '$src_size', '$src_type')
");

Znači id osoba i id slike su identični...
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: LAST_INSERT_ID() (MySql)30.10.2002. u 23:02 - pre 261 meseci
Ne znam bas za mySQL ali u SQL Serveru i Oracle moze da se pozove funkcija MAX(polje) da bi dobio poslednju vrednost pod uslovom da je polje identity (= auto increment, = auto number) ili da vrednosti u polju idu 'rastuci' redom (ili 'opadajuci' u kom slucaju koristis MIN(polje) ).

Nesto poput:
SELECT MAX(polje) FROM tabela ...itd.

Meni se cini da je, upravo zbog ovakvih stvari, uvek dobro imati polje koje je auto-increment da bude primary key u tabeli.


HTH

Commercial-Free !!!
 
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: LAST_INSERT_ID() (MySql)01.11.2002. u 04:33 - pre 261 meseci
Citat:
goran33:
Koji je najlakši način da iz tabele slike "izvadim" poslednji upisani id, koji je primarni ključ, a njegova vrednost je jednaka poslednjem upisanom polju id iz neke druge tabele (npr. osoba)...

Kod za automatski unos id u tabelu slike je sledeći:

mysql_query ("INSERT INTO slike
(id, src, filename, filesize, filetype)
VALUES
(LAST_INSERT_ID(),'$data', '$src_name', '$src_size', '$src_type')
");

Znači id osoba i id slike su identični...


Zadnji uneseni id iz neke druge tabele mozes saznati zavisno o potrebi i nacinu na koji radis skriptu.
1. ako u istoj skripti vrsis unos i u tabelu osobe i u tabelu slike, onda zadnji uneseni id u tabeli osobe saznajes funkcijom mysql_insert_id()
2. - vjerovatno je pod jedan ono sta ti treba, ali ako nije, onda reci kako vrsis unos podataka, pa cu ti reci i drugi nacin -

Npr. za prvi nacin:
Preporucio bih ti da stavis auto_increment polje i stavis ga da bude primary.
Ako imas osim tog polja jos neka druga polja, npr.:
id, ime, godine
onda ovako unosis podatke:

$linkhandler = mysql_connect("localhost","user","pass") or die(mysql_error());
mysql_query("INSERT INTO osobe(ime,godine) VALUES('$ime','$godine')",$linkhandler);

Vrijednost za id ne moras navoditi, jer se automatski upisuje vrijednost zadnjeg unos povecan za 1.
Vrijednost ovog zadnjeg unosa saznajes funkcijom mysql_insert_id():

$zadnji_unos = mysql_insert_id($linkhandler);

i onda imas:
mysql_query("INSERT INTO slike(id, src, filename, filesize, filetype)
VALUES ('$zadnji_unos','$data', '$src_name', '$src_size', '$src_type')
",$linkhandler);

Valjda je to ono sta si trazio.
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

Mihailo
Mihailo Đorić

Član broj: 1016
Poruke: 2875
*.verat.net



+1 Profil

icon Re: LAST_INSERT_ID() (MySql)01.11.2002. u 11:38 - pre 261 meseci
Čemu tolika filozofija, postoji većina agregatnih funkcija (MIN, MAX, AVG, COUNT...) i kod MySQL-a.
 
Odgovor na temu

goran33
Goran Milic
Beograd

Član broj: 6040
Poruke: 46
*.net.yu

ICQ: 170738591


Profil

icon Re: LAST_INSERT_ID() (MySql)01.11.2002. u 16:20 - pre 261 meseci
Jeste... Prvi odgovor je sasvim dovoljan... select max(id), radi ok...
 
Odgovor na temu

Riste Pejov
Team Leader/Senior Software Developer @
Ein-Sof ltd Skopje
Skopje, Macedonia

Član broj: 128
Poruke: 571
212.110.78.*

Jabber: richie@bagra.net.mk
ICQ: 154236769
Sajt: riste.softver.org.mk


Profil

icon Re: LAST_INSERT_ID() (MySql)05.11.2002. u 18:18 - pre 261 meseci
Da se koristi max(id) umesto LAST_INSERT_ID() ?!?!?!?!?!??!?!

Ovakvu ideju mozes dobiti samo od nekoga ko nema pojma o baze podataka.

Mislim da valjda neko ko je diskutirao ovo zna kako radi max(id),

razlika je sledeca:

kad koristis LAST_INSERT_ID() onda samo iz RAM memorije mysqld izbaci zadnji ID koji je generisao. Sto je najbolje resenje koje mozes pozeleti.

Ukoliko se odlucis za max() onda za istoj tabeli se pretrazuje binarno drvo indexa, sve dok se ne nadje najveci ID. Ukoliko je kolona ne-ndexirana, onda DB engine radi full scan.

Ukoliko ti explicitno ne treba najveca vrednost u koloni, onda izbegavaj max(), posebno kad je u pitanju UID kolona. Zamisli sta bi se desilo kad bi ta tabela stigla do 100K+ recorda.

Pozdrav, i bez uvreda za korisnika max()


People who think they know everything tend to irritate those of us who do.
 
Odgovor na temu

Mihailo
Mihailo Đorić

Član broj: 1016
Poruke: 2875
*.verat.net



+1 Profil

icon Re: LAST_INSERT_ID() (MySql)05.11.2002. u 18:43 - pre 261 meseci
Moja je greška što temu nisam pročitao detaljno, pa sam samo napomenuo da i kod MySQL-a postoji MAX(). Naravno, LAST_INSERT_ID pod uslovom da je auto_increment, i to je najbolje rešenje. S druge strane, logično je index bude na toj koloni, i u tom slučaj MAX() radi posao dobro.
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: LAST_INSERT_ID() (MySql)06.11.2002. u 02:32 - pre 261 meseci
Riste, ja sam napomenuo da ne radim sa mySQL-om tako da mu specificno resenje koje se koristi na SQL Serveru nisam ni predocavao. Nisam ni krio da nista ne znam o MySQL cak sam to i istakao. Jednostavno, dao sam nesto sto bi moglo da radi na sve tri baze -- bez ikakve iluzije da je to najbolje resenje i da neko nece predociti nesto sto je mnogo bolje.
Ne vidim razlog da se uzbudjujes :-) Svakako, tvoj odgovor je i za mene prilika da naucim nesto o toj bazi.

Pozdrav
Commercial-Free !!!
 
Odgovor na temu

[es] :: MySQL :: LAST_INSERT_ID() (MySql)

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

Postavi temu Odgovori

Srodne teme
14.04.2024. Re: Gde je Kejt? (samo pogrešni odgovori)
18.08.2001. error 2002:
09.01.2002. pomoc oko foruma
14.08.2002. MySql Probelem
21.10.2002. mysql na slacku
31.01.2003. MySQL i apache
21.01.2003. MySQL problem
28.07.2003. Perl & MySql
30.08.2003. RedHat 9 i PHP + MySQL
04.10.2003. php&mysql problem
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.