|
Программирование >> Программный интерфейс приложений
LOAD DATA load data [low priority] [local] infile file name [ignore I replace] into table tblname importoptions [ignore n lines] [ [columnjist) ] Оператор load data считывает записи из файла filejname и загружает их в таблицу tblname. Этот оператор работает быстрее, чем insert. При задании ключевого слова L0W PRI0RITY оператор не выполняется, если кто-либо из пользователей считывает данные таблицы. Это ключевое слово впервые появилось в MySQL серии 3.23 Как правило, заданный файл считывается сервером с компьютера, на котором сервер MySQL установлен. Соответственно, запускающий этот оператор пользователь должен обладать привилегией file, а сам файл должен располагаться в каталоге базы данных или быть открытым для считывания. Если определено ключевое слово local, файл считывается с компьютера клиента и отправляется на сервер через сеть. В этом случае необходимость в привилегии file отпадает. Впервые ключевое слово local появилось в MySQL версии 3.22.15. Если слово local Не определено, сервер пытается самостоятельно найти заданный файл, руководствуясь следующими правилами. Если имя filejname задано как абсолютный путь, сервер ищет файл, начиная с корневого каталога. Если имя filejiame задано как относительный путь, его интерпретация зависит от того, содержит это имя один или больще компонентов. Если определен только один компонент, сервер ищет файл в каталоге установленной по умолчанию базы данных. Если же заданное имя содержит несколько компонентов, сервер ищет файл, начиная с каталога данных сервера. При определении ключевого слова local заданное имя файла интерпретируется следующим образом. Если имя filejxame задано как абсолютный путь, программа-клиент ищет файл, начиная с корневого каталога. Если имя filename задано как относительный путь, программа-клиент ищет файл, начиная с текущего каталога пользователя. В зависимости от использования ключевых слов ignore и replace, строки с дублирующими значениями уникальных индексов либо пропускаются, либо вставляются вместо существующих. Если ни одно, ни второе слово не определено, а такая запись встречается, возникает ошибка, и все оставшиеся строки пропускаются. Предложение importoptions определяет формат данных. Задаваемые в нем опции могут также использоваться и в предложении exportoptions оператора select . . . into outfile. Предложение importoptions имеет следующий синтаксис: [FIELDS [TERMINATED ВУ string] [OPTIONALLY] ENCLOSED BY char] [ESCAPED BY char]] [LINES TERMINATED BY string) Для представления специальных символов в значениях string и values могут применяться следующие последовательности.
В MySQL версии 3.22.10 и более поздних версиях для определения ко.м-бинаций символов можно также использовать шестнадцатеричнь[е констан-тьг Предложение lines terminated by 0x02, Например, определяет, что строки разрываются при нажатии комбинации клавищ <Ctrl+B> (ASCII 2). Если задано ключевое слово fields, необходимо определить по крайней мере одно из предложений terminated by, enclosed by или escaped by, причем В установленном порядке. Если заданы оба слова, fields И lines, ОПЦИИ fields ДОЛЖНЫ задаваться первыми. Предложение fields включает следующие части. Предложение terminated by определяет символ или символы, которые ограничивают значения внутри строки. Предложение enclosed by определяет символ кавычек, который ограничивает значения поля. Оно может задаваться как с ключевым словом optionally, так И без него. Для операторов вывода (select . . . into outfile) определенный в предложении enclosed by СИМВОЛ используется ДЛЯ выделения значений поля в выводимой строке. Если задано ключевое слово optionally, зна- чения выделяются определенными символами только для столбцов типа char и varchar. Чтобы включить определенный предложением enclosed by символ в значение поля, его необходимо либо продублировать, либо установить после символа escaped by. В любом другом случае он будет рассматриваться как знак конца поля. Для включения такого символа в значения поля выводимых строк первым устанавливается символ, определенный предложением escaped by. Заданный в предложении escaped by символ используется для определения того, что следующий за ним символ является специальным. Так, в предыдущих примерах в качестве символа выхода выступает обратная косая черта ( \ ). Следовательно, в вводимой информации \n (обратная косая черта и N) интерпретируется как null, а \0 (обратная косая черта и ASCII-символ о ) - как нулевой байт. Для всех остальных случаев символ выхода отбрасывается, а следующий за ним символ помещается в строку. Например, запись \ интерпретируется как символ двойной кавычки, даже если предыдущим предложением enclosed by определено, что двойные кавычки указывают на конец строки. В выводимой информации символ выхода используется для кодирования null и нулевых байтов с помощью записей \n и \0 соответственно. Кроме того, чтобы ввести в строке символы, определенные предложениями escaped by и enclosed by в качестве символов выхода и окончания строки, необходимо установить перед ними еще Ьдин символ выхода. Если символ escaped by пуст (escaped by ), подобная обработка не выполняется. Чтобы ввести символ выхода \ , введите его дважды (escaped by \\) Итак, значение предложения lines terminated by определяет символ или символы, указывающие на окончание строк. Если предложения fields и lines не определены, используются установленные по умолчанию значения. С по.мощью операторов их можно было бы задать следующим образом: FIELDS TERIIINATED BY \\t ENCLOSED BY ESCAPED BY W LINES TERMINATED BY n Другими словами, поля в строке не выделяются кавычками, обратная косая черта рассматривается как символ выхода, а строки обрываются после ввода символов перехода на новую строку. Если значения terminated by и enclosed by предложения fields являются пустыми (не заполненными), используется формат строки фиксированной щирины, в которой поля не отделяются друг от друга специальными разделителями. В этом случае значения столбцов считываются
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |