Multumesc

mysql_insertid e ok pt scenariul meu.

On Tue, 2010-12-28 at 18:44 +0200, Petru Ratiu wrote:
> 2010/12/28 Mircea MITU <mir...@sigu.ro>:
> > Hello
> >
> > am o mica aplicatie interna ce foloseste 2 tabele mysql, de forma:
> >
> > T1: id (int, autoincrement), nume
> > T2: id, ceva
> >
> > Intr-un anume scenariu, datele le inserez astfel (kinda pseudocod):
> >
> >        query1: insert into t1 NULL, valoare_nume (T1.id fiind
> >        autoincrement, este generat de mysql)
> >        query2: get T1.id de mai sus
> >        query3: insert into t2 t1.id (de la query2), valoare_ceva
> >
> > Exista vreo metoda de a obtine T1.id la pasul query1, astfel incat sa
> > scap de query2? Sau sunt alte metode de optimizari ce-mi scapa, fara a
> > afecta structura tabelelor? Stiu de la inceput valoare_nume si
> > valoare_ceva, dar nu stiu T1.id.
> >
> 
> Disclaimer: nu-s DBA, asa ca scuze daca ma exprim putin dupa ureche.
> 
> Afaik, cam orice API de mysql iti ofera direct id-ul generat de
> autoincrementul de la ultimul query, astfel ca query2 e de obicei gata
> facut (in php a dat un colistas link, in perl DBD::mysql iti da
> $dbh->{'mysql_insertid'} sau mysql_insertid(), probabil ca si in ruby,
> python and co. ai ceva de genul asta (de notat ca it's a mysql thing,
> nu e sql standard).
> 
> Alternativ, stiu ca vazusem niste inginerii facute cu foreign keys si
> triggere, dar nu stiu in ce masura asta contrazice conditia ta cu
> "afectarea structurii tabelelor" (nu se adauga coloane, ci doar
> indecsi).
> 
> Daca apare vreun colistas mai mester in ale designului de baze de
> date, m-ar interesa si pe mine cum se rezolva elegant genul asta de
> probleme.
> 
> 



_______________________________________________
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui