Forum Webscript.Ru

Программирование => Perl => Тема начата: Error202 от 13 Января 2006, 08:55:31

Название: MySQL - загрузка данных
Отправлено: Error202 от 13 Января 2006, 08:55:31
Есть файл base.sql (5 Мб)

Можно ли скриптом перла загрузить его в базу?
Название: MySQL - загрузка данных
Отправлено: arto от 13 Января 2006, 12:46:04
да.
Название: MySQL - загрузка данных
Отправлено: Error202 от 13 Января 2006, 12:48:12
:) Спасибо, а каким образом?
Название: MySQL - загрузка данных
Отправлено: arto от 13 Января 2006, 13:01:21
либо самому читать файл и писать его через DBI/DBD (perldoc DBI),
либо вызывать через system/open (perldoc -f system, perldoc -f open)
command line утилиту работы с базой данных (для postgresql это psql,
для sybase isql, etc).
последнее предпочтительнее.
Название: MySQL - загрузка данных
Отправлено: Error202 от 13 Января 2006, 13:04:48
Последнее конечно лучше, но не универсально, т.к. на некоторых хостингах нужно указывать полный путь до утилиты...

А вот читать из файла и затем писать... Короче на 5 Мб у меня виснет все наглухо... :(
Название: MySQL - загрузка данных
Отправлено: arto от 13 Января 2006, 13:18:43
1. не найти в $PATH?
2. читать построчно, если команды в одну строку, если не в одну -- парсить файл, что сложнее. тогда либо SQL::Parser (не пробовал), либо Parse::RecDescent, либо какой иной из Parse::*. или вручную писать парсер, который будет выражения выдирать.
Название: MySQL - загрузка данных
Отправлено: Error202 от 13 Января 2006, 13:25:51
Засада!
Ладно, спасибо...
Название: MySQL - загрузка данных
Отправлено: arto от 13 Января 2006, 13:37:31
# perl -e \'foreach (split ":",$ENV{PATH}) { print if (-f "$_/psql"); }\'
/usr/bin
#
Название: MySQL - загрузка данных
Отправлено: Error202 от 13 Января 2006, 13:41:29
Спасибо!