INSERT nebo UPDATE?

Honza Pazdziora adelton na fi.muni.cz
Pondělí Únor 4 21:35:59 CET 2002


On Mon, 4 Feb 2002 10:23:31 +0000 (UTC), Zíka Aleš, Ing. <Ales.Zika na pel.br.ds.mfcr.cz> wrote:

> 	A ted mi jde o to, jak to nejlepe udelat?	Zatim me napadly tri
> moznosti:
> 1) Napred zkusit INSERT, pokud selze kvuli duplicite primarniho klice,
> pouzit UPDATE
> 2) Napred zkusit UPDATE, pokud neopravi zadny radek, pouzit INSERT
> 3) SELECTem otestovat existenci KLICe a podle toho pouzit INSERT nebo UPDATE
> (asi uplny zverstvo, holt me zkazila dBase))
> 
> 	Existuje nejaky "standardni doporuceny postup" jak takovouhle vec
> resit? A pokud ne, tak ktery z vyse popsanych zpusobu je nejrychlejsi a

Souhlasim s kolegy, ze zalezi na to, co predpokladate, ze uspeje
nejcasteji, pricemz ten select je ve vetsine pripadu zbytecny.

Je ale nutne ve vsech pripadech nezapomenout na to, ze to, ze insert
vyhodi vyjimku na primarnim klici, neznamena, ze nasledny update tam
ten zaznam jeste najde. A naopak, to, ze (v pripade 2) update nezmeni
zadny zaznam, protoze tam zadny v te chvili neni, neznamena, ze nez se
dostanete k tomu, abyste na zaklade tohoto faktu udelal insert, ze tam
paralelni proces ten zaznam nevlozi a Vas insert selze.

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
 .project: Perl, mod_perl, DBI, Oracle, auth. WWW servers, XML/XSL, ...
------------------------------------------------------------------------


Další informace o konferenci Databases