sql insert

Antonin 'Tonino' Kmoch xkmoch na aisa.fi.muni.cz
Sobota Prosinec 14 02:42:58 MET 2002


On Thu, 12 Dec 2002, rootmj wrote:

> Chtel bych aby prechod z nynejsi SQLite na napr MySQL byl bezproblemovy.
> V idealnim pripade jen zamena v DBI->connect. Zajimalo by me jak mam 
> postupovat v pripade ze chci vlozit novy radek do tabylky a zjistit 
> cislo primarniho klice tohoto noveho radku. Nyni to delam pomoci.
> 
> $new_row_id = $dat->func('last_insert_rowid');
> 
> Coz je mozne v SQLite v pripade ze je primarni klic definovan takhle
>   id_fak       INTEGER       AUTO_INCREMENT PRIMARY KEY
> 
> Kompatibilni moznost me napada jen jedna
>   # $new_row_id = SELECT MAX(id_fak) FROM faktury
> a pote insert
>   # INSERT INTO faktury (id_fak,cis_fak,id_odb) VALUES ($new_row_id,?,?)
> 
> Coz je ale slozitejsi a pomalejsi ale snad kompatibilni.
> Existuje lepsi prenositelne reseni?

Nejake mozne metody jsou uvedeny napr. na strane 10 v dokumentu:

http://search.cpan.org/src/TIMB/dbd-summaries-19990519/dbd-mysql-msql.pdf

Doufam, ze to pomuze...

P.S. Vybirat novy prim. klic pres MAX neni vhodne, pac novy primarni klic
muze byt mensi nez maximum - kdyz "pretece" (ale to zalezi, jak je to v
mySQL nastavene).

Tonda



Další informace o konferenci Perl