Spec-Zone .ru
спецификации, руководства, описания, API

3.3.3. Загрузка Данных в Таблицу

После составления Вашей таблицы Вы должны заполнить это. LOAD DATA и INSERT операторы полезны для этого.

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

имя владелец разновидности пол рождение смерть
Пушистый Гарольд кошка f 1993-02-04
Когти Гвен кошка м. 1994-03-17
Желтый Гарольд собака f 1989-05-13
Клык Бенни собака м. 1990-08-27
Теплозаправщик Диана собака м. 1979-08-31 1995-07-29
Веселый Гвен птица f 1998-09-11
Whistler Гвен птица 1997-12-09
Тонкий Бенни змея м. 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 рабочий OS X Вы, вероятно, хотели бы использовать LINES TERMINATED BY '\r'.)

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

Если оператор перестал работать, вероятно, что Вашей установке MySQL не включали локальной возможности файла по умолчанию. См. Раздел 6.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 оператор.