Mam bazę która potrzebuje usunąć kolumnę.
Kolumna ta zmieniła trochę właściwości i została przeniesiona do innego pola.
Usunięcie jest proste i wykonuje zwykłego dropa po wykonaniu tej komendy (czyli kopiowanie danych):
UPDATE zepages_news SET `activationDate`=FROM_UNIXTIME(IF(EXISTS(SELECT * FROM information_schema.COLUMNS WHERE table_schema = 'kl00076_dvvDB' AND table_name = 'zepages_news' AND column_name ='createDate'), `createDate`, 1362477579)) WHERE `activationDate`=0;
I to działa super, za pierwszym razem czyli gdy kolumna istnieje. Po usunięciu jej niestety wykrzacza się i wyrzuca, że nie istnieje "createDate" co jest prawdą, ale właśnie po to jest sprawdzenie
EXISTS(SELECT * FROM information_schema.COLUMNS WHERE table_schema = 'kl00076_dvvDB' AND table_name = 'zepages_news' AND column_name ='createDate')
Da się takie zapytanie w jednym sqlu zrobić?
Niestety trzeba aktualizować w ten sposób, bo jest kilka stron na tym samym CMSie i nie wszystkie są aktualizowane w jednym momencie...