Форум программистов, компьютерный форум, киберфорум
Наши страницы
MySQL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
kilogram
1 / 1 / 3
Регистрация: 04.03.2012
Сообщений: 126
1

load data

05.07.2012, 15:32. Просмотров 1232. Ответов 4
Метки нет (Все метки)

Читаю здесь http://phpclub.ru/mysql/doc/load-data.html про LOAD DATA. Пишу так:
PHP
1
load data infile '1.txt' into table cat;
Выдает такую ошибку на фото:
вырезано
Что может быть?
Содержимое файла 1.txt
Код
Андрей Пупкин 85

Таблица такая:
MySQL
1
2
3
4
5
6
7
8
| cat   | CREATE TABLE `cat` (
  `number` int(11) NOT NULL AUTO_INCREMENT,
  `name1` varchar(20) DEFAULT NULL,
  `surname` char(12) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`number`),
  UNIQUE KEY `name1` (`name1`,`surname`,`age`)
) ENGINE=MyISAM AUTO_INCREMENT=35 DEFAULT CHARSET=utf8 |
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2012, 15:32
Ответы с готовыми решениями:

LOAD DATA INFILE
Добрый день! Подскажите пожалуйста - в запросе LOAF DATA INFILE - есть...

LOAD DATA INFILE
Cтруктура таблицы - id(int),text(text). Есть большой файл. Как реализовать...

LOAD DATA LOCAL INFILE
LOAD DATA LOCAL INFILE 'http://ne-mij-site.ru/data.csv' ... Должно работать?...

Scheduler и Load data infile
Добрый день! только начинаю изучать БД, хочу из CSV загрузить данные через Load...

Адрес для load data local infile
Каким должен быть путь для load data local infile ''..... Если файл csv лежит...

4
Евгений М.
1053 / 990 / 101
Регистрация: 28.02.2010
Сообщений: 2,876
Завершенные тесты: 2
05.07.2012, 18:41 2
kilogram, может быть содержимое должно быть вида:
Код
85 Андрей Пупкин
1
kilogram
1 / 1 / 3
Регистрация: 04.03.2012
Сообщений: 126
06.07.2012, 00:32  [ТС] 3
Вот мой файл 1.txt
Скажите, что там не так?

http://s2.ipicture.ru/uploads/20120705/ds8Ez4DE.jpg

Написал так:
MySQL
1
load data infile '1.txt' into table cat FIELDS TERMINATED BY ','
Выдает такую ошибку:
http://s2.ipicture.ru/uploads/20120705/x4e51Mk6.jpg

Добавлено через 1 час 56 минут
Сохранил ЮТФ-8 без БОМ, сработало вроде.
Попробывал написать в файле 1.txt:

Код
38,Василий,Дятлов,91
39,Пол,Андерсон,91
Вот моя таблица:
MySQL
1
2
3
4
5
6
7
8
9
------------------------------------------------------------
| cat   | CREATE TABLE `cat` (
  `number` int(11) NOT NULL AUTO_INCREMENT,
  `name1` varchar(20) DEFAULT NULL,
  `surname` char(12) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`number`),
  UNIQUE KEY `name1` (`name1`,`surname`,`age`)
) ENGINE=MyISAM AUTO_INCREMENT=41 DEFAULT CHARSET=utf8 |
Ведь здесь стоит уникальный ключ на каждое поле чтобы не повторялось. Почему вставились 2 записи, ведь в последнем поле age 2 раза повторяется 91? Почему уникальный ключ не сработал?*

Добавлено через 2 часа 20 минут
Создал для теста таблицу dog:
MySQL
1
2
3
4
5
6
| dog   | CREATE TABLE `dog` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `name` varchar(15) DEFAULT NULL,
  `age` int(3) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 |

Как вставлять записи из файла в базу данных в которой содержится первичный ключ с автоинкрементом, так чтобы не писать над каждой записью в файле - номер вставляемой записи, а так чтобы в таблице этот номер вставлялся сам?

Код
1 Василий 91 
2 Андерсон 18
Вот так работает, но приходится в файле нумеровать каждую вставляемую запись: 1, 2, 3, 4....

MySQL
1
load data infile '1.txt' into table dog fields terminated by ' ';
Добавлено через 40 минут
Один нюанс заметил. При вставке в базу после этой строки, добавляются пробелы из-за terminated by ' ' , но парадокс, без неё не вставляется, а с ней вставляются пробелы. Как вставлять без пробелов?
MySQL
1
load data infile '1.txt' into table dog fields terminated by '  ' (name,age)
0
kilogram
1 / 1 / 3
Регистрация: 04.03.2012
Сообщений: 126
07.07.2012, 12:44  [ТС] 4
Вот мой файл 1.txt

load data


Проблемма что добавляются в базу данных пробелы, а мне нужно их убрать. Как написать так чтобы не добавлялись пробелы?

Если написать так запрос:
MySQL
1
load data infile '1.txt' into table dog (name, age);
получится ошибка:
load data

А если написать так:

MySQL
1
load data infile '1.txt' into table dog fields terminated by  '  '(name,age);
добавляет с пробелом, фото ниже.

Нажмите на изображение для увеличения
Название: ai2r1p0b.jpg
Просмотров: 6
Размер:	21.4 Кб
ID:	168001


Как написать чтобы не добавляло пробелы в базу?
0
Миниатюры
load data  
LittleGirl
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 5
17.07.2012, 01:13 5
Как вставлять записи из файла в базу данных в которой содержится первичный ключ с автоинкрементом, так чтобы не писать над каждой записью в файле - номер вставляемой записи, а так чтобы в таблице этот номер вставлялся сам?
Вместо 1,2,3,4... в столбце с auto_increment всегда писать 0.

Как написать чтобы не добавляло пробелы в базу?
Использовать в качестве разделителя таб, в load data infile в этом случае не нужно явно указывать разделитель, он сам всё поймёт=)
0
17.07.2012, 01:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2012, 01:13

LOAD DATA INFILE изменение кодировки при выгрузке
Скажите, как изменить кодировку в БД при выгрузке???Очень прошу! В таком...

Data Mining
Здравствуйте. Хочу взять на диплом тему Data Mining. Но проблема в том,где...

Login Data (Chrome)
Можно ли узнать пароли пользователя другого ПК, имя его файл Login Data из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru