Witam, przebudowywałem serwis wraz ze zmianą struktury bazodanowej. Wszystko przeszło gładko, ale zapomniałem o przeniesieniu kilku pól. Mam teraz problem jak to zrobić.
Serwis od chwili migracji ciągle żyje więc muszę to zrobić na żywym organizmie. Proszę o pomoc
Stara tabela:CREATE TABLE `ksiega` (
`id_ksiega` int(10) NOT NULL AUTO_INCREMENT,
`id_book` varchar(10) NOT NULL,
`masa` varchar(10) NOT NULL,
`masa1` varchar(10) NOT NULL,
`masa2` varchar(10) NOT NULL,
`forma` varchar(50) NOT NULL,
`forma1` varchar(50) NOT NULL,
`forma2` varchar(50) NOT NULL,
`cena` text NOT NULL,
`cena1` text NOT NULL,
`cena2` text NOT NULL,
`zwrot` text NOT NULL,
`zwrot1` text NOT NULL,
`zwrot2` text NOT NULL,
`waluta` varchar(5) NOT NULL,
`waluta1` varchar(5) NOT NULL,
`waluta2` varchar(5) NOT NULL,
`spr` text NOT NULL,
`spr1` text NOT NULL,
`spr2` text NOT NULL,
`imie_nazwisko` text CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
PRIMARY KEY (`id_ksiega`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=14095 ;
Nowa tabela:CREATE TABLE `tab` (
`id_tab` int(10) NOT NULL AUTO_INCREMENT,
`id_book` int(10) NOT NULL,
`ilosc` text NOT NULL,
`login` varchar(30) NOT NULL,
`masa` varchar(10) NOT NULL,
`forma` varchar(50) NOT NULL,
`cena` text NOT NULL,
`zwrot` text NOT NULL,
`waluta` varchar(5) NOT NULL,
`spr` text NOT NULL,
`imie_nazwisko` text CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
PRIMARY KEY (`id_tab`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=792 ;
Po konwersji rozbijałem jeden rekord na trzy (np. masa, masa1, masa2 itd) zapomniałem o polach forma, forma1,forma2 - chcę uzupełnić nowa tabelę o wartości z tych pól
Próbuję tak, ale średnio mi wychodzi:
UPDATE tab LEFT JOIN ksiega ON (tab.id_book=ksiega.id_book
AND (SELECT DISTINCT tab.id_book FROM (SELECT max(id_tab) FROM tab ) AS m)
)
SET tab.forma=ksiega.forma