поиск:
Полезные ссылки

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


  • PHP конференция 2005
    Подробности!

    4.8.7. mysqlimport, импорт данных из текстовых файлов

    Утилита mysqlimport обеспечивает интерфейс командной строки для SQL-оператора LOAD DATA INFILE. Большинство параметров mysqlimport полностью соответствует аналогичным параметрам для оператора LOAD DATA INFILE. See Раздел 6.4.9, «Синтаксис оператора LOAD DATA INFILE».

    Утилита mysqlimport вызывается следующим образом:

    shell> mysqlimport [параметры] database textfile1 [textfile2 ...]
    

    Для каждого текстового файла, указанного в командной строке, mysqlimport удаляет расширение в каждом имени файла и использует его, чтобы определить, в какую таблицу занести содержимое. Например, файлы с именами patient.txt, patient.text и patient должны быть все занесены в таблицу с именем patient.

    Утилита mysqlimport поддерживает следующие опции:

    • -c, --columns=...

      Эта опция принимает в качестве аргумента список разделенных запятыми имен полей. Данный список полей используется для создания соответствующей команды LOAD DATA INFILE, которая затем посылается в MySQL. See Раздел 6.4.9, «Синтаксис оператора LOAD DATA INFILE».

    • -C, --compress

      Использовать компрессию в связи между клиентом и сервером, если они оба поддерживают сжатие.

    • -#, --debug[=option_string]

      Отслеживать прохождение программы (для отладки).

    • -d, --delete

      Удалить данные из таблицы перед импортированием текстового файла.

    • --fields-terminated-by=... , --fields-enclosed-by=... , --fields-optionally-enclosed-by=... , --fields-escaped-by=... , --lines-terminated-by=...

      Эти опции аналогичны соответствующим операторам для LOAD DATA INFILE. See Раздел 6.4.9, «Синтаксис оператора LOAD DATA INFILE».

    • -f, --force

      Игнорировать ошибки. Например, если таблица для текстового файла не существует, продолжать обработку остающихся файлов. Без параметра --force утилита mysqlimport прекращает работу при отсутствии таблицы.

    • --help

      Вывести справочную информацию и выйти из программы.

    • -h host_name, --host=host_name

      Импортировать данные в MySQL-сервер на указанном хосте. Значение хоста по умолчанию - localhost.

    • -i, --ignore

      См. описание для параметра --replace.

    • -l, --lock-tables

      Заблокировать все таблицы для записи перед обработкой любых текстовых файлов. Это обеспечивает синхронизацию всех таблиц на сервере.

    • -L, --local

      Читать входящие файлы из клиента. По умолчанию предполагается, что текстовые файлы расположены на сервере при подсоединении к localhost (значение хоста по умолчанию).

    • -pyour_pass, --password[=your_pass]

      Используемый пароль при подключении к серверу. Если аргумент =your_pass не введен, mysqlimport предложит ввести пароль.

    • -P port_num, --port=port_num

      Номер порта TCP/IP, используемого для подсоединения к хосту.

    • --protocol=(TCP | SOCKET | PIPE | MEMORY)

      Для указания протокола соединения, который надлежит использовать. Новшество в MySQL 4.1.0.

    • -r, --replace

      Опции --replace и --ignore управляют обработкой поступающих на вход записей, которые дублируют имеющиеся записи по значениям уникальных ключей. Если задано значение --replace, новые строки заменяют существующие с тем же самым значением уникального ключа. Если задано значение --ignore, входные строки, которые дублируют существующую строку по значению уникального ключа, пропускаются. Если же ни одна из опций не задана, то при обнаружении ключа-дубликата возникает ошибка и остаток текстового файла игнорируется.

    • -s, --silent

      Режим молчания. Выводить только сообщения об ошибках.

    • -S /path/to/socket, --socket=/path/to/socket

      Файл сокета для подсоединения к localhost (значение хоста по умолчанию).

    • -u user_name, --user=user_name

      Имя пользователя MySQL-сервера, используемое при подсоединении к серверу. Значением по умолчанию является имя для входа в Unix.

    • -v, --verbose

      Расширенный режим вывода. Вывод более детальной информации о работе программы.

    • -V, --version

      Вывести информацию о версии и выйти из программы.

    Ниже приведен пример листинга программы, использующей утилиту mysqlimport:

    $ mysql --version
    mysql  Ver 9.33 Distrib 3.22.25, for pc-linux-gnu (i686)
    $ uname -a
    Linux xxx.com 2.2.5-15 #1 Mon Apr 19 22:21:09 EDT 1999 i586 unknown
    $ mysql -e 'CREATE TABLE imptest(id INT, n VARCHAR(30))' test
    $ ed
    a
    100     Max Sydow
    101     Count Dracula
    .
    w imptest.txt
    32
    q
    $ od -c imptest.txt
    0000000   1   0   0  \t   M   a   x       S   y   d   o   w  \n   1   0
    0000020   1  \t   C   o   u   n   t       D   r   a   c   u   l   a  \n
    0000040
    $ mysqlimport --local test imptest.txt
    test.imptest: Records: 2  Deleted: 0  Skipped: 0  Warnings: 0
    $ mysql -e 'SELECT * FROM imptest' test
    +------+---------------+
    | id   | n             |
    +------+---------------+
    |  100 | Max Sydow     |
    |  101 | Count Dracula |
    +------+---------------+
    
     
    © 1997-2005 PHP Club Team
    Rambler's Top100