Задавайте вопросы, мы ответим
Вы не зашли.
Доброго времени суток!
При добавлении новости вылетает следующая ошибка:
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)
Неактивен
А каким образом возникла данная ошибка?
Ведь при попытке установить AUTO_INCREMENT меньше или равно существующему, он будет автоматически установлен как максимальное значение+1.
Неактивен
Самое простое — INSERT INTO tablename SET id = 100000;
Неактивен
Это понятно, но в приведенном запросе id явно не указывается.
Неактивен
CREATE TABLE a (a INT KEY AUTO_INCREMENT);
INSERT INTO a SET a = 1;
INSERT INTO a VALUES (NULL); -- не указывается, но ошибка
Неактивен
Неактивен
Прикольно. В 5.1 действительно не работает такой usecase
Тогда автору сообщения — еще один способ решения — обновиться до 5.1 / 5.5.
Неактивен
В таблице dle_post в строке id` int(11) NOT NULL auto_increment, убрал доп. параметр auto_increment, проблема вроде бы решилась и никаких проблем пока не возникло. Если что-то изменится отпишусь, но думаю все будет нормально
Неактивен
Думаю всё будет гораздо хуже
Неактивен
vasya написал:
Думаю всё будет гораздо хуже
Почему? Что может случиться? это же кажется доп. параметр, необязательный для использования.
Неактивен
А что делает этот доп параметр?
И покажите, что нынче показывает SHOW CREATE TABLE dle_post;
Неактивен
Атрибут 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)
Неактивен