XML > databáze

Zdravím,

mám asi 1000 položek zboží v .xml a potřebuji to vložit do databáze. Není problém udělat hromadný insert, ale já nechci vkládat takové zboží, které už v databázi, ale chci ho upravit.

Máte někdo nápad, jak jedním selectem zjistit zboží, které již existuje, do nějakého pole? Na základě toho by se dal už vytvořit jeden insert a jeden update.

Nebo máte jiný nápad? Díky moc
V SQL existuje příkaz REPLACE. Pokud jsem to dobře pochopil, mohl by řešit tvůj dotaz ;)
No, ale má to jednu vadu. Některé řádky si doupravím ručně, pak přijde další vlna nových údajů a replace udělá to, že přepíše i takové sloupce, které nechci.

I když mě napadá, kdybych mnou "upravené" údaje vložil do jiné stejně strukturované tabulky a výsledek by hledal především data v duplicitní tabulce, pak až v té primární, řešilo by to můj problém.

Zkusím to tak a díky ;)
Jedna varianta je taková, že by se vytvořil další sloupec, který bude obsahovat unikátní hodnotu získanou z hodnot položky. Tomuto sloupci se nastaví unikátnost. Při insertu takovéto hodnoty dojde k chybě duplicity a záznam se nevloží. Této chyby se dá využít. Když se zavolá chyba duplicity, tak vím, že záznam existuje, a provedu update.
Otázkou je, zda lze vytvořit unikátní hodnotu, která by byla odlišná od jiných položek.

Jinak lze použít klasiku.

SELECT:
existuje: UPDATE
neexistuje: INSERT

Ze zkušenosti vím, že je dobré použit raději jeden SELECT na jednu položku než jeden SELECT na všechny položky. Dost záleží i na struktuře tabulky i počtu položek.
Tak mě napadlo. Výše uvedený příklad by měl být ekvivalentem http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html. Ale ještě jsem to nezkoušel.
Tomik:
ad 1)
klasiku použít nelze, protože potom bych na stránce měl díky cyklu třeba i 1000 dotazů, což je nežádoucí...

ad 2)
to by mohlo fungovat, zkusím a díky