porovnani 2 tabulek v MySQL

Josef Svoboda pepa.svob na worldonline.cz
Čtvrtek Únor 20 12:32:32 CET 2003


> Dobry den,
> 
> mam 2 strukturou identicke tabulky (v MySQL), v jedne jsou zaznamy
> starsiho data (t1), ve druhe novejsiho (t2). Obe dve tabulky maji
> definovany primarni klic. Potreboval bych u zaznamu v t2, ktere se
> nenachazeji i v t1 (porovnani podle primarniho klice) zmenit jeden z
> popisnych atributu. Cili cosi jako oznaceni zaznamu, ktere ve starsi verzi
> neexistuji. Zatim me nenapadlo jine reseni nez aplikaci prochazet t2
> postupne radek po radku a pokazde si sahnout do t1 a zjistit zda tam dany
> zaznam je a pokud ne tak provest update radku v t2.  Pripada mi to ale
> prilis neefektivni, tak se chci zeptat jestli vas nekoho nenapada lepsi
> reseni. Tento proces se bude opakovat periodicky nad tabulkami s cca 15000
> zaznamy.
> Diky za nakopnuti. Jan Bernard
> 

V MySQL by se to dalo resit pomoci docasneho souboru:

select 
  concat("update t2 set isnew='1' where pk='" , t2.pk , "';")
  t1 right join t2 using(pk)
  where t1.pk is null
  into outfile '/tmp/aktual.sql';

\. /tmp/aktual.sql

Nezapomente ten soubor potom smazat.

Josef Svoboda



Další informace o konferenci Databases