Lipetsk *nix Association Forum Lipetsk *nix Association Forum
Новости:
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
01 Декабря 2024, 14:35:15


Войти


Страниц: [1]   Вниз
  Печать  
Автор Тема: борьба с mysql 5 под freebsd  (Прочитано 13824 раз)
0 Пользователей и 1 Гость смотрят эту тему.
wrag
Небритый одмин
*****

Карма: 0
Сообщений: 673



Награды
« : 04 Марта 2008, 22:37:06 »

проблема заключаеться в том что таблица создалась
а при попытке внести в нее данные она спотыкаеться на:
 Duplicate entry '1' for key 1

как с этим бороться кто нить сталкивался?



mysql> CREATE TABLE test( id int(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, DATE DATE NOT NULL, TIME TIME NOT NULL, CALLING_DN VARCHAR(30) NOT NULL, CALLING_CAT VARCHAR(30) NOT NULL, INC_EQ_NBR VARCHAR(30) NOT NULL, RCVD_DIGITS VARCHAR(30) NOT NULL, CALLED_DN VARCHAR(30) NOT NULL, OTG_EQ_NBR VARCHAR(30) NOT NULL, BEARER VARCHAR(30) NOT NULL, XFER_MODE VARCHAR(30) NOT NULL, CAUSE VARCHAR(30) NOT NULL, TERM_SEIZED VARCHAR(30) NOT NULL, THROUGH_SWITCH VARCHAR(30) NOT NULL, ANSWER VARCHAR(30) NOT NULL, RELEASE_ VARCHAR(30) NOT NULL) AUTO_INCREMENT=400;

Query OK, 0 rows affected (0.00 sec)

mysql> DESCRIBE test;
+----------------+------------------+------+-----+---------+----------------+
| Field          | Type             | Null | Key | Default | Extra          |
+----------------+------------------+------+-----+---------+----------------+
| id             | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
| DATE           | date             | NO   |     |         |                |
| TIME           | time             | NO   |     |         |                |
| CALLING_DN     | varchar(30)      | NO   |     |         |                |
| INC_EQ_NBR     | varchar(30)      | NO   |     |         |                |
| RCVD_DIGITS    | varchar(30)      | NO   |     |         |                |
| CALLED_DN      | varchar(30)      | NO   |     |         |                |
| OTG_EQ_NBR     | varchar(30)      | NO   |     |         |                |
| BEARER         | varchar(30)      | NO   |     |         |                |
| XFER_MODE      | varchar(30)      | NO   |     |         |                |
| CAUSE          | varchar(30)      | NO   |     |         |                |
| TERM_SEIZED    | varchar(30)      | NO   |     |         |                |
| THROUGH_SWITCH | varchar(30)      | NO   |     |         |                |
| ANSWER         | varchar(30)      | NO   |     |         |                |
| RELEASE_       | varchar(30)      | NO   |     |         |                |
+----------------+------------------+------+-----+---------+----------------+
16 rows in set (0.01 sec)

mysql> LOAD DATA INFILE "/mnt/F/printer/ats22/at22-1-20030813.l" INTO TABLE test
;
ERROR 1062 (23000): Duplicate entry '1' for key 1
Записан

живущий в консоли
начальник отдела системотехники Люцифеp
NeO
Злобный админчик
Администратор
*****

Карма: 62
Сообщений: 2376

Debian Stretch


WWW Награды
« Ответ #1 : 05 Марта 2008, 08:51:20 »

Видимо в id заносится две 1
Записан
wrag
Небритый одмин
*****

Карма: 0
Сообщений: 673



Награды
« Ответ #2 : 07 Марта 2008, 19:50:47 »

это понятно но что делать если не охота скрипт писать а хочеться чтоб стандартной командой занести нужное в базу
Записан

живущий в консоли
начальник отдела системотехники Люцифеp
NeO
Злобный админчик
Администратор
*****

Карма: 62
Сообщений: 2376

Debian Stretch


WWW Награды
« Ответ #3 : 07 Марта 2008, 20:52:06 »

это понятно но что делать если не охота скрипт писать а хочеться чтоб стандартной командой занести нужное в базу
Как вариант - выбросить из файлика все записи о id, т.к. поле AUTO_INCREMENT, оно заполнится самостоятельно. Выбросить можно любыть текстовым редактором в принципе, т. к. оно первое, то вполне подойдет функция замены. Надеюсь я понятно объяснил? Улыбка
Записан
wrag
Небритый одмин
*****

Карма: 0
Сообщений: 673



Награды
« Ответ #4 : 08 Марта 2008, 20:45:27 »

мдя придется скрипт всеже писать так как в файле сочетание букв  id, встречаеться повсеместно, логи на англицком:))
Записан

живущий в консоли
начальник отдела системотехники Люцифеp
hLynx
Новичек
*

Карма: 0
Сообщений: 22


Награды
« Ответ #5 : 08 Марта 2008, 21:19:38 »

эх. жаль в мускуле триггеров нету
Записан

Чтобы понять рекурсию нужно понять рекурсию
hLynx
Новичек
*

Карма: 0
Сообщений: 22


Награды
« Ответ #6 : 08 Марта 2008, 21:36:01 »

если нет табличек, связанных с этой, то можно сделать так:
1. убрать PRIMARY KEY из описания id
2. добавить поле id1 int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
3. создать таблицу
4. заполнить таблицу
5. ALTER TABLE DROP id
6. ALTER TABLE CHANGE id1 id int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
учти, что отсчёт начнётся с 400, так как в определении таблицы AUTO_INCREMENT=400. если это убрать, то начнётся с 1

во как завернул. вроде так, если правильно понял проблему. надеюсь нигде не ошибся
« Последнее редактирование: 08 Марта 2008, 22:56:02 от hLynx » Записан

Чтобы понять рекурсию нужно понять рекурсию
wrag
Небритый одмин
*****

Карма: 0
Сообщений: 673



Награды
« Ответ #7 : 08 Марта 2008, 22:14:57 »

то есть ты хочеш сказать если убрать с конца автоинкремент то счет пойдет с еденицы?
просто только в этом семестре начали довать скульбазы еще путаюсь

и имя ты предлагаеш для айди поставить несовпадающее с обычным сочетанием букв id

вобщем проблема заключалась в том что при любом поле в которое я пытаюсь вставить примари кей майскюль выдает ошибку :
ERROR 1062 (23000): Duplicate entry 'имя столбца таблицы' for key 1

в таблице одни нули
а за подсказку с айди респект и спасибо

да и вопрос в догонку может ли это происходить из за типов этих столбцов
DATE DATE NOT NULL, TIME TIME NOT NULL,
« Последнее редактирование: 08 Марта 2008, 22:17:37 от wrag » Записан

живущий в консоли
начальник отдела системотехники Люцифеp
hLynx
Новичек
*

Карма: 0
Сообщений: 22


Награды
« Ответ #8 : 08 Марта 2008, 22:53:24 »

я имел ввиду, что нужно убрать первичный ключ с поля id, тогда оно перестанет быть уникальным и добавить ещё одно поле id1 с ключиком и автоинкрементом (естественно такого поля в insert'ах не будет и записи будут на единицу прибавляться). после заполнения таблицы удаляешь id и переименовываешь id1 в id.

про DATE и TIME
имена у этих двух полей плохие (совпадают с именами типов): нужно их везде в апострофы заключать, а лучше сменить, а ещё лучше вместо этих двух полей использовать одно типа DATETIME или TIMESTAMP

а вообще уже хотелось бы файлик этот увидеть

зы приношу извинения. часто забываю комменты вписывать
Записан

Чтобы понять рекурсию нужно понять рекурсию
wrag
Небритый одмин
*****

Карма: 0
Сообщений: 673



Награды
« Ответ #9 : 08 Марта 2008, 22:59:00 »

email дай
незя такое файло кидать в общий доступ
Записан

живущий в консоли
начальник отдела системотехники Люцифеp
sakkaba
Продвинутый
***

Карма: 1
Сообщений: 134

Vista 32bit :(


Награды
« Ответ #10 : 09 Марта 2008, 03:31:32 »

>>незя такое файло кидать в общий доступ
Гыгы! Перехватим Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM