Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
conspect.pdf
Скачиваний:
374
Добавлен:
17.03.2016
Размер:
27.86 Mб
Скачать

Базы данных

БГУИР, ПОИТ

 

 

6.10.10. LOAD DATA INFILE: пример использования

Сначала создадим «текстовый дамп» вот такой таблицы:

Код создания таблицы

Данные в таблице

CREATE TABLE `testtable`

(`id` int(11) NOT NULL AUTO_INCREMENT, `string_field` varchar(255) DEFAULT NULL, `double_field` double NOT NULL, `bit_field` bit(1) NOT NULL, `set_field` set('one','two') NOT NULL, PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

Выполним запрос:

SELECT * INTO OUTFILE 'c:/testtable.txt' CHARACTER SET 'utf8'

FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"‘ ESCAPED BY '\\' LINES STARTING BY '+++' TERMINATED BY '---\n' FROM `testtable`

Получаем дамп (копия экрана специально сделана через FAR, чтобы точно видеть реальную разметку текста, значения и т.д.):

Теперь немного «покалечим» файл, очистим таблицу и прочитаем в неё данные из файла. При этом в таблицу добавим (в конец) ещё одно поле `new_double`, значение которого будем получать как `double_field`*2.

«Покалеченный файл»

Новая структура таблицы

 

 

Выполним запрос:

LOAD DATA INFILE 'c:/testtable.txt' INTO TABLE `testtable` CHARACTER SET 'utf8'

FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\' LINES STARTING BY '+++' TERMINATED BY '---\n'

(`id`, `string_field`, `double_field`, `bit_field`, `set_field`) SET `new_double` =`double_field`*2

Получаем результат:

Всё! Рекомендую поэкспериментировать самостоятельно.

Стр: 241/248

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]