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

load data - MySQL

05.07.2012, 15:32. Просмотров 1183. Ответов 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 |

http://www.cyberforum.ru/mysql/thread1505805.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2012, 15:32
Я подобрал для вас темы с готовыми решениями и ответами на вопрос load data (MySQL):

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 лежит...

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

4
Евгений М.
1047 / 986 / 98
Регистрация: 28.02.2010
Сообщений: 2,858
Завершенные тесты: 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
Привет! Вот еще темы с решениями:

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

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

Data для dBase
Хотел воспользоваться Data для доступа к dbf-файлу. Но получил сообщение:...

Data truncated for column
При выполнении запроса получаю набор предупреждений для одной из колонок "Data...


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

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

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