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