Spec-Zone.ru › MySQL 9.2

5.3.3 Загрузка данных в таблицу

После создания таблицы необходимо заполнить ее. Для этого полезны инструкции LOAD DATA и INSERT.

Предположим, что записи о питомцах можно описать следующим образом. (Обратите внимание, что MySQL ожидает даты в формате 'YYYY-MM-DD'; это может отличаться от того, к чему вы привыкли.)

name owner species sex birth death
Fluffy Harold cat f 1993-02-04
Claws Gwen cat m 1994-03-17
Buffy Harold dog f 1989-05-13
Fang Benny dog m 1990-08-27
Bowser Diane dog m 1979-08-31 1995-07-29
Chirpy Gwen bird f 1998-09-11
Whistler Gwen bird 1997-12-09
Slim Benny snake m 1996-04-29

Так как таблица пустая, простой способ заполнить ее — создать текстовый файл, содержащий строку для каждого животного, а затем загрузить содержимое файла в таблицу одной инструкцией.

Вы можете создать текстовый файл pet.txt, содержащий по одной записи на строку, со значениями, разделенными табуляцией, и в порядке, в котором столбцы были перечислены в инструкции CREATE TABLE. Для пропущенных значений (например, неизвестного пола или дат смерти для животных, которые все еще живы), можно использовать NULL значения. Чтобы представить их в текстовом файле, используйте \N (обратная косая черта, заглавная буква N). Например, запись для Whistler — птицы — будет выглядеть так (где пробел между значениями — это один символ табуляции):

Whistler        Gwen    bird    \N      1997-12-09      \N

Для загрузки текстового файла pet.txt в таблицу pet используйте следующую инструкцию:

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;

Если вы создали файл в Windows с помощью редактора, использующего \r\n в качестве разделителя строк, следует использовать следующую инструкцию вместо нее:

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
       LINES TERMINATED BY '\r\n';

(На устройстве Apple под управлением macOS, скорее всего, вам нужно использовать LINES TERMINATED BY '\r'.)

Вы можете явно указать разделитель значений столбцов и маркер конца строки в инструкции LOAD DATA, но по умолчанию используются табуляция и символ конца строки. Их достаточно, чтобы инструкция корректно читала файл pet.txt.

Если инструкция завершается ошибкой, возможно, в вашей установке MySQL по умолчанию отключена возможность работы с локальными файлами. См. Раздел 8.1.6, «Учет мер безопасности для LOAD DATA LOCAL» для получения информации о том, как это изменить.

При добавлении новых записей по одной за раз, полезно использовать инструкцию INSERT. В самом простом варианте вы предоставляете значения для каждого столбца в порядке, в котором они перечислены в инструкции CREATE TABLE. Предположим, что у Дианы появился новый хомячок по имени «“Puffball.”». Вы можете добавить новую запись с помощью инструкции INSERT следующим образом:

mysql> INSERT INTO pet
       VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

Строковые и даты значения здесь указываются как строковые значения в кавычках. Кроме того, с помощью INSERT можно вставить NULL напрямую, чтобы обозначить пропущенное значение. Вы не используете \N, как это делается с LOAD DATA.

Из этого примера видно, что для загрузки записей изначально с помощью нескольких инструкций INSERT потребуется намного больше набора текста, чем с помощью одной инструкции LOAD DATA.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/loading-tables.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API