Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> load data 
:(
    Опции темы
kilogram
Дата 5.7.2012, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 19.3.2012

Репутация: 1
Всего: 0



Читаю здесь http://phpclub.ru/mysql/doc/load-data.html про LOAD DATA. Пишу так:
Код
load data infile '1.txt' into table cat;


Выдает такую ошибку на фото:
user posted image
Что может быть?
Содержимое файла 1.txt
Код
Андрей Пупкин 85



Таблица такая:
Код
| 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 |


Это сообщение отредактировал(а) kilogram - 5.7.2012, 14:34
PM MAIL   Вверх
Сумасшедший
Дата 5.7.2012, 15:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чилавек-Каропка
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 15.8.2004
Где: Москва

Репутация: 4
Всего: 107



Дык number в 1.txt не прописан


--------------------
Однажды ты спросишь, а я отвечу: "Время ожидания специалиста - 10 минут". Ты бросишь трубку, так и не узнав, что Ваш звонок очень важен для нас!
PM MAIL WWW Jabber   Вверх
kilogram
Дата 5.7.2012, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 19.3.2012

Репутация: 1
Всего: 0



Вот мой файл 1.txt
Скажите, что там не так?

user posted image

Написал так:
SQL
load data infile '1.txt' into table cat FIELDS TERMINATED BY ',' 


Выдает такую ошибку: 
user posted image
PM MAIL   Вверх
kilogram
Дата 5.7.2012, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 19.3.2012

Репутация: 1
Всего: 0



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

Код

38,Василий,Дятлов,91
39,Пол,Андерсон,91


Вот моя таблица:

Код

------------------------------------------------------------
| 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? Почему уникальный ключ не сработал?*
PM MAIL   Вверх
kilogram
Дата 5.7.2012, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 19.3.2012

Репутация: 1
Всего: 0



Создал для теста таблицу dog:
Код

| 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....
 
Код
load data infile '1.txt' into table dog fields terminated by ' ';

PM MAIL   Вверх
kilogram
Дата 5.7.2012, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 19.3.2012

Репутация: 1
Всего: 0



Один нюанс заметил. При вставке в базу после этой строки, добавляются пробелы из-за terminated by '  ' , но парадокс, без неё не вставляется, а с ней вставляются пробелы. Как вставлять без пробелов? 
Код
load data infile '1.txt' into table dog fields terminated by '  ' (name,age) 


Это сообщение отредактировал(а) kilogram - 5.7.2012, 23:31
PM MAIL   Вверх
kilogram
Дата 7.7.2012, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 19.3.2012

Репутация: 1
Всего: 0



Вот мой файл 1.txt

user posted image

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

Если написать так запрос:
Код
load data infile '1.txt' into table dog (name, age);

получится ошибка:
user posted image
А если написать так:

Код
load data infile '1.txt' into table dog fields terminated by  '  '(name,age); 


добавляет с пробелом, фото ниже.

user posted image

Как написать чтобы не добавляло пробелы в базу?


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0710 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.