Witam!
Mam taki problem, otóż napisałem skrypt do mojej strony. Niestety skrypty mają różne bazy. np. jeden ma kolumne login, a drugi username. Jak przenieść rekordy do nowej bazy danych?
Witam!
Mam taki problem, otóż napisałem skrypt do mojej strony. Niestety skrypty mają różne bazy. np. jeden ma kolumne login, a drugi username. Jak przenieść rekordy do nowej bazy danych?
Zakładając że do baz masz dostęp przez PHP My Admina, z jego poziomu eksportujesz do pliku .sql strukturę i dane.
Następnie edytujesz plik i zmieniasz w nim nazwy kolumn …po czym importujesz dane z tego pliku do bazy docelowej.
Tylko w starym skrypcie kolejność kolumn to np. id, nick, email,password a w nowym to id,username,password,email …
Kolejność kolumn nie ma znaczenia…
Kolejność ma znaczenie tutaj tylko przy wprowadzaniu do bazy danych przez INSERT INTO.
…przykład:
--
-- Struktura tabeli dla `auth`
--
CREATE TABLE `auth` (
`user_id` char(11) NOT NULL default '0',
`login` varchar(25) NOT NULL default '',
`pass` varchar(32) NOT NULL default '',
`data` date NOT NULL,
`stat` char(1) NOT NULL default '0',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM;
--
-- Zrzut danych tabeli `auth`
--
INSERT INTO `auth` (`user_id`, `login`, `pass`, `data`, `stat`) VALUES
('47305023007', 'root', '458862695661d6ab517d4f7d979c4417', '2007-03-21', '0'),
('74612311818', 'user', '8ba6d7e11fdfd360abfcac32282027f2', '2007-03-21', '0');
-- --------------------------------------------------------
Jeżeli docelowo struktura ma wyglądać tak samo a różnica będzie tylko w nazewnictwie to zmieniasz tylko nazwy tabel/kolumn:
--
-- Struktura tabeli dla `autoryzacja`
--
CREATE TABLE `autoryzacja` (
`id` char(11) NOT NULL default '0',
`username` varchar(25) NOT NULL default '',
`password` varchar(32) NOT NULL default '',
`add_time` date NOT NULL,
`status` char(1) NOT NULL default '0',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM;
--
-- Zrzut danych tabeli `autoryzacja`
--
INSERT INTO `autoryzacja` (`id`, `username`, `password`, `add_time`, `status`) VALUES
('47305023007', 'root', '458862695661d6ab517d4f7d979c4417', '2007-03-21', '0'),
('74612311818', 'user', '8ba6d7e11fdfd360abfcac32282027f2', '2007-03-21', '0');
-- --------------------------------------------------------
Ważne tylko by nazwy kolumn w CREATE TABELE i INSERT INTO były identyczne, oraz by w INSERT INTO kolejność danych odpowiadała kolejności kolumn (inaczej, by typy wprowadzanych danych odpowiadały typom kolumn)
Zatem kolejność tabel w CREATE TABELE jest dowolna, tylko w INSERCIE przy zmianie kolejności trzeba uważać.
Mam nadzeieję, że rozumiesz o co chodzi
No trzeba :D, ale nadal nie wiem jak zrobić to co chciałem.