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. -- Petre. _______________________________________________ RLUG mailing list RLUG@lists.lug.ro http://lists.lug.ro/mailman/listinfo/rlug