Общие > Базы данных
Дамп Mysql базы
dan3k:
Требуется сделать дамп определенных таблиц (бд - 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?
Chs:
man mysqldump
dan3k:
И как mysqldump запустить с помощью DBI?
amigo:
dan3k не помню, чтобы была определенная функция, но можно выцепить информацию о таблице с помощью SQL-запроса:
SHOW COLUMNS FROM table_name [FROM database_name]
или SHOW FIELDS...
На основе результатов можно сформировать CREATE TABLE...
Как сгенерировать INSERT... я думаю понятно ^_^
amigo:
dan3k хотя можно запсукать mysqldump, а вывод ловить скриптом...
Навигация
Перейти к полной версии