Pouziti autoincrementu

Jan Kasprzak kas na informatics.muni.cz
Úterý Červen 17 23:33:01 CEST 2003


Petr Vileta wrote:
: >  Jak vlastne treba u DB2 nebo MySQL dostanu nejake ID jeste pred tim
: >  nez neco vlozim do tabulky?
: No tak konkretne u MySQL to delam takhle:
: LOCK TABLE moje_tabulka WRITE, jina_tabulka WRITE;
: SELECT MAX(nejake_ciselne_pole)+1 FROM moje_tabulka;
: ...
: INSERT INTO moje_tabulka SET nejake_hodnoty;
: INSERT INTO jina_tabulka SET nejake_hodnoty;
: UNLOCK TABLES;
: Tim mam zarucene, ze behem zjistovani ID mi nikdo jiny do tablek nic
: nezapise, ale muze cist. Takze pokud jiny thread chce nacist data pro
: zobrazeni, nic u nebrani a pokud chce neco zapsat, tak proste ceka, dokud ja
: neskoncim se zapisem a neUNLOCKnu.

	V MySQL umozni LOCK TABLE ... WRITE nekomu jinemu z te tabulky
cist? K cemu potom takove LOCK je?

	Navic toto je _silene_ pomale pokud delate vic pristupu z vice
klientu, tak zbytecne serializujete neco, co muze bezet paralelne.

-Y.

-- 
| Jan "Yenya" Kasprzak  <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839      Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/   Czech Linux Homepage: http://www.linux.cz/ |
--     I'm an "Oppenheimer", and I refuse to play politics with Linux.    --
--                                            --Linus Torvalds on LKML    --


Další informace o konferenci Databases