SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 15.01.2011 19:14:36

qwertu
Участник
Зарегистрирован: 15.01.2011
Сообщений: 5

MySQL Error Number: 1062

Доброго времени суток!
При добавлении новости вылетает следующая ошибка:

MySQL Error!
------------------------

The Error returned was:
Duplicate entry '36731' for key 1

Error Number:
1062

INSERT INTO dle_post (date, autor, short_story, full_story, xfields, title, descr, keywords, category, alt_name, allow_comm, approve, allow_main, fixed, allow_rate, allow_br, votes, access, symbol, flag, tags, metatitle) values ('2011-01-15 18:56:48', 'L', '123', '', '', '123123', '123', '', '0', '123123', '1', '1', '1', '0', '1', '1', '0', '', '', '1', '', '')

Как исправить данную ошибку?

P.S.: SHOW CREATE TABLE dle_post

CREATE TABLE `dle_post` (
`id` int(11) NOT NULL auto_increment,
`autor` varchar(40) NOT NULL default '',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`short_story` text NOT NULL,
`full_story` text NOT NULL,
`xfields` text NOT NULL,
`title` varchar(255) NOT NULL default '',
`descr` varchar(200) NOT NULL default '',
`keywords` text NOT NULL,
`category` varchar(200) NOT NULL default '0',
`alt_name` varchar(200) NOT NULL default '',
`comm_num` smallint(5) unsigned NOT NULL default '0',
`allow_comm` tinyint(1) NOT NULL default '1',
`allow_main` tinyint(1) unsigned NOT NULL default '1',
`allow_rate` tinyint(1) unsigned NOT NULL default '1',
`approve` tinyint(1) NOT NULL default '0',
`fixed` tinyint(1) NOT NULL default '0',
`rating` smallint(5) NOT NULL default '0',
`allow_br` tinyint(1) NOT NULL default '1',
`vote_num` smallint(5) unsigned NOT NULL default '0',
`news_read` mediumint(8) unsigned NOT NULL default '0',
`votes` tinyint(1) NOT NULL default '0',
`access` varchar(150) NOT NULL default '',
`expires` date NOT NULL default '0000-00-00',
`symbol` varchar(3) NOT NULL default '',
`flag` tinyint(1) NOT NULL default '1',
`editdate` varchar(15) NOT NULL default '',
`editor` varchar(40) NOT NULL default '',
`reason` varchar(255) NOT NULL default '',
`view_edit` tinyint(1) NOT NULL default '0',
`tags` varchar(255) NOT NULL default '',
`metatitle` varchar(50) default NULL,
PRIMARY KEY  (`id`),
KEY `autor` (`autor`),
KEY `alt_name` (`alt_name`),
KEY `category` (`category`),
KEY `approve` (`approve`),
KEY `allow_main` (`allow_main`),
KEY `date` (`date`),
KEY `symbol` (`symbol`),
KEY `comm_num` (`comm_num`),
KEY `tags` (`tags`),
FULLTEXT KEY `short_story` (`short_story`,`full_story`,`xfields`,`title`)
) ENGINE=MyISAM AUTO_INCREMENT=36731 DEFAULT CHARSET=cp1251

Отредактированно qwertu (15.01.2011 19:16:02)

Неактивен

 

#2 15.01.2011 22:26:06

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: MySQL Error Number: 1062

SELECT MAX(id) FROM dle_post;
ALTER TABLE dle_post AUTO_INCREMENT=(полученное значение + 1);

А вообще, FAQ#10.

Неактивен

 

#3 15.01.2011 22:36:08

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: MySQL Error Number: 1062

А каким образом возникла данная ошибка?
Ведь при попытке установить AUTO_INCREMENT меньше или равно существующему, он будет автоматически установлен как максимальное значение+1.

Неактивен

 

#4 15.01.2011 23:20:58

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: MySQL Error Number: 1062

Самое простое — INSERT INTO tablename SET id = 100000;

Неактивен

 

#5 15.01.2011 23:28:40

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: MySQL Error Number: 1062

Это понятно, но в приведенном запросе id явно не указывается.

Неактивен

 

#6 16.01.2011 00:29:46

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: MySQL Error Number: 1062

CREATE TABLE a (a INT KEY AUTO_INCREMENT);
INSERT INTO a SET a = 1;
INSERT INTO a VALUES (NULL); -- не указывается, но ошибка

Неактивен

 

#7 16.01.2011 00:59:04

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: MySQL Error Number: 1062

mysql> CREATE TABLE a (a INT KEY AUTO_INCREMENT);
Query OK, 0 rows affected (0.30 sec)

mysql> INSERT INTO a SET a = 1;
Query OK, 1 row affected (0.05 sec)

mysql> INSERT INTO a VALUES (NULL); -- не указывается, но ошибка
Query OK, 1 row affected (0.05 sec)

mysql> select * from a;
+---+
| a |
+---+
| 1 |
| 2 |
+---+
2 rows in set (0.02 sec)

mysql> select version();
+------------------+
| version()        |
+------------------+
| 5.1.52-community |
+------------------+
1 row in set (0.00 sec)

Неактивен

 

#8 16.01.2011 13:21:44

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: MySQL Error Number: 1062

Прикольно. В 5.1 действительно не работает такой usecase wink

Тогда автору сообщения — еще один способ решения — обновиться до 5.1 / 5.5.

Неактивен

 

#9 16.01.2011 13:51:06

qwertu
Участник
Зарегистрирован: 15.01.2011
Сообщений: 5

Re: MySQL Error Number: 1062

В таблице dle_post в строке id` int(11) NOT NULL auto_increment, убрал доп. параметр auto_increment, проблема вроде бы решилась и никаких проблем пока не возникло. Если что-то изменится отпишусь, но думаю все будет нормально

Неактивен

 

#10 16.01.2011 14:26:18

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: MySQL Error Number: 1062

Думаю всё будет гораздо хуже smile

Неактивен

 

#11 16.01.2011 18:34:11

qwertu
Участник
Зарегистрирован: 15.01.2011
Сообщений: 5

Re: MySQL Error Number: 1062

vasya написал:

Думаю всё будет гораздо хуже smile

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

Неактивен

 

#12 16.01.2011 20:10:53

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: MySQL Error Number: 1062

А что делает этот доп параметр?
И покажите, что нынче показывает SHOW CREATE TABLE dle_post;

Неактивен

 

#13 16.01.2011 20:23:49

qwertu
Участник
Зарегистрирован: 15.01.2011
Сообщений: 5

Re: MySQL Error Number: 1062

Атрибут AUTO_INCREMENT может использоваться для генерации уникального идентификатора для новых строк - (c) Google
После его откоючения ошибки не стало, сейчас я его включил обратно, но всё по-прежнему работает, но почему это уже хороший вопрос.

dle_post     CREATE TABLE `dle_post` (
`id` int(11) NOT NULL auto_increment,
`autor` varchar(40) NOT NULL default '',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`short_story` text NOT NULL,
`full_story` text NOT NULL,
`xfields` text NOT NULL,
`title` varchar(255) NOT NULL default '',
`descr` varchar(200) NOT NULL default '',
`keywords` text NOT NULL,
`category` varchar(200) NOT NULL default '0',
`alt_name` varchar(200) NOT NULL default '',
`comm_num` smallint(5) unsigned NOT NULL default '0',
`allow_comm` tinyint(1) NOT NULL default '1',
`allow_main` tinyint(1) unsigned NOT NULL default '1',
`allow_rate` tinyint(1) unsigned NOT NULL default '1',
`approve` tinyint(1) NOT NULL default '0',
`fixed` tinyint(1) NOT NULL default '0',
`rating` smallint(5) NOT NULL default '0',
`allow_br` tinyint(1) NOT NULL default '1',
`vote_num` smallint(5) unsigned NOT NULL default '0',
`news_read` mediumint(8) unsigned NOT NULL default '0',
`votes` tinyint(1) NOT NULL default '0',
`access` varchar(150) NOT NULL default '',
`expires` date NOT NULL default '0000-00-00',
`symbol` varchar(3) NOT NULL default '',
`flag` tinyint(1) NOT NULL default '1',
`editdate` varchar(15) NOT NULL default '',
`editor` varchar(40) NOT NULL default '',
`reason` varchar(255) NOT NULL default '',
`view_edit` tinyint(1) NOT NULL default '0',
`tags` varchar(255) NOT NULL default '',
`metatitle` varchar(50) default NULL,
PRIMARY KEY  (`id`),
KEY `autor` (`autor`),
KEY `alt_name` (`alt_name`),
KEY `category` (`category`),
KEY `approve` (`approve`),
KEY `allow_main` (`allow_main`),
KEY `date` (`date`),
KEY `symbol` (`symbol`),
KEY `comm_num` (`comm_num`),
KEY `tags` (`tags`),
FULLTEXT KEY `short_story` (`short_story`,`full_story`,`xfields`,`title`)
) ENGINE=MyISAM AUTO_INCREMENT=36810 DEFAULT CHARSET=cp1251

Отредактированно qwertu (16.01.2011 20:24:55)

Неактивен

 

Board footer

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