wrag
|
|
« : 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
|
Видимо в id заносится две 1
|
|
|
Записан
|
|
|
|
wrag
|
это понятно но что делать если не охота скрипт писать а хочеться чтоб стандартной командой занести нужное в базу
|
|
|
Записан
|
живущий в консоли начальник отдела системотехники Люцифеp
|
|
|
NeO
Злобный админчик
Администратор
Карма: 62
Сообщений: 2376
Debian Stretch
|
это понятно но что делать если не охота скрипт писать а хочеться чтоб стандартной командой занести нужное в базу
Как вариант - выбросить из файлика все записи о id, т.к. поле AUTO_INCREMENT, оно заполнится самостоятельно. Выбросить можно любыть текстовым редактором в принципе, т. к. оно первое, то вполне подойдет функция замены. Надеюсь я понятно объяснил?
|
|
|
Записан
|
|
|
|
wrag
|
мдя придется скрипт всеже писать так как в файле сочетание букв id, встречаеться повсеместно, логи на англицком:))
|
|
|
Записан
|
живущий в консоли начальник отдела системотехники Люцифеp
|
|
|
hLynx
Новичек
Карма: 0
Сообщений: 22
|
эх. жаль в мускуле триггеров нету
|
|
|
Записан
|
Чтобы понять рекурсию нужно понять рекурсию
|
|
|
hLynx
Новичек
Карма: 0
Сообщений: 22
|
если нет табличек, связанных с этой, то можно сделать так: 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
|
то есть ты хочеш сказать если убрать с конца автоинкремент то счет пойдет с еденицы? просто только в этом семестре начали довать скульбазы еще путаюсь
и имя ты предлагаеш для айди поставить несовпадающее с обычным сочетанием букв 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
|
я имел ввиду, что нужно убрать первичный ключ с поля id, тогда оно перестанет быть уникальным и добавить ещё одно поле id1 с ключиком и автоинкрементом (естественно такого поля в insert'ах не будет и записи будут на единицу прибавляться). после заполнения таблицы удаляешь id и переименовываешь id1 в id.
про DATE и TIME имена у этих двух полей плохие (совпадают с именами типов): нужно их везде в апострофы заключать, а лучше сменить, а ещё лучше вместо этих двух полей использовать одно типа DATETIME или TIMESTAMP
а вообще уже хотелось бы файлик этот увидеть
зы приношу извинения. часто забываю комменты вписывать
|
|
|
Записан
|
Чтобы понять рекурсию нужно понять рекурсию
|
|
|
wrag
|
email дай незя такое файло кидать в общий доступ
|
|
|
Записан
|
живущий в консоли начальник отдела системотехники Люцифеp
|
|
|
sakkaba
Продвинутый
Карма: 1
Сообщений: 134
Vista 32bit :(
|
>>незя такое файло кидать в общий доступ Гыгы! Перехватим
|
|
|
Записан
|
|
|
|
|