Forum Webscript.Ru
Общие => Базы данных => Тема начата: dan3k от 05 Ноября 2003, 08:17:01
-
Требуется сделать дамп определенных таблиц (бд - MySql).
Очень хочется, чтобы все было в таком формате:
CREATE TABLE ex_bl (
bl_id mediumint(9) NOT NULL auto_increment,
ip_address varchar(16) NOT NULL default \'\',
p_id mediumint(9) NOT NULL default \'0\',
KEY bl_id (bl_id)
) TYPE=MyISAM;
INSERT INTO ex_bl VALUES (1, \'127.0.0.1\', 0);
INSERT INTO ex_bl VALUES (2, \'127.0.0.1\', 0);
#next table...
Т.е. как в phpmyadmin.
Может быть в MySql есть спец-функция? Тогда топик надо будет перенести в другой форум :).
Или же прийдется делать полный select таблицы, а потом через цикл писать все значения как
INSERT INTO $tablename VALUES ($a->{\'1\'}, \'$a->{\'2\'}\', $a->{\'3\'})?
И тут еще назрел вопрос: как это сделать при большой базе, чтобы заодно сервак не упал :D?
-
man mysqldump
-
И как mysqldump запустить с помощью DBI?
-
dan3k не помню, чтобы была определенная функция, но можно выцепить информацию о таблице с помощью SQL-запроса:
SHOW COLUMNS FROM table_name [FROM database_name]
или SHOW FIELDS...
На основе результатов можно сформировать CREATE TABLE...
Как сгенерировать INSERT... я думаю понятно ^_^
-
dan3k хотя можно запсукать mysqldump, а вывод ловить скриптом...
-
И как mysqldump запустить с помощью DBI?
Отвечаю четко на вопрос: никак.
-
amigo:
SHOW COLUMNS FROM table_name [FROM database_name]
или SHOW FIELDS...
На основе результатов можно сформировать CREATE TABLE...
ну если уже CREATE TABLE нужно, то тогда сразу SHOW CREATE TABLE и использовать.
-
fidget да. Просто торможу.