SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 20.09.2012 15:10:33

septera
Завсегдатай
Откуда: Краснодар
Зарегистрирован: 16.02.2011
Сообщений: 30

Загрузка через LOAD DATA INFILE

Приветствую!
Есть проблема, когда делаю загрузку через LOAD DATA INFILE в базе изменяется PRIMARY KEY (`id`) на следующий по порядку, а нужно чтобы остался тот же самый.
Листинг:

CREATE TABLE IF NOT EXISTS `nomenklatura2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uid` varchar(50) NOT NULL,
  `sklad` varchar(50) NOT NULL,
  `article` varchar(50) NOT NULL,
  `name` varchar(1000) NOT NULL,
  `original` varchar(2000) NOT NULL,
  `manufacturer` varchar(50) NOT NULL,
  `cen_grup` varchar(50) NOT NULL,
  `srok_sklad` tinyint(4) NOT NULL,
  `nal_sklad` smallint(6) NOT NULL,
  `big` tinyint(4) NOT NULL,
  `price` double NOT NULL,
  `val` varchar(3) NOT NULL,
  `ed` varchar(8) NOT NULL DEFAULT 'шт',
  `opisanie` varchar(1000) NOT NULL,
  `img` varchar(50) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uid` (`uid`,`sklad`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

LOAD DATA INFILE "/home/localhost/www/vgr/out.txt" REPLACE INTO TABLE nomenklatura2 (uid, sklad, article, name, original, manufacturer, cen_grup, srok_sklad, nal_sklad, big, price, val, ed)

Отредактированно septera (20.09.2012 15:11:11)

Неактивен

 

#2 20.09.2012 15:33:28

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Загрузка через LOAD DATA INFILE

Вы не загружаете данные колонки id, поэтому они автоинкрементируются. В чем именно проблема?

Неактивен

 

#3 20.09.2012 15:38:03

septera
Завсегдатай
Откуда: Краснодар
Зарегистрирован: 16.02.2011
Сообщений: 30

Re: Загрузка через LOAD DATA INFILE

rgbeast написал:

Вы не загружаете данные колонки id, поэтому они автоинкрементируются. В чем именно проблема?

Вот в этом и проблема, без указания первичного ключа нельзя заставить mysql не создавать его? Просто заранее не известен первичный ключ, там где выгружаются данные его нету, можно конечно сделать выборку ключа в mysql или загрузить во временную таблицу и потом insert в главную таблицу, но это грабли.

Неактивен

 

#4 20.09.2012 16:03:27

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Загрузка через LOAD DATA INFILE

Первичный ключ - уникальный, не создавать его нельзя, также как и заполнить нулями

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson