Русскоязычный форум, посвященный фреймворку Kohana http://forum.kohanaframework.su/ |
|
Database_Exception [ 1062 ]: Duplicate entry '239178805' for http://forum.kohanaframework.su/viewtopic.php?f=33&t=577 |
Страница 1 из 1 |
Автор: | JSergRu [ 19 фев 2013, 10:49 ] |
Заголовок сообщения: | Database_Exception [ 1062 ]: Duplicate entry '239178805' for |
Как видно из заголовка сообщения, получаю ошибку при попытке добавить запись в таблицу со значением первичного ключа, которое уже есть в бд. Загружать сервер лишним запросом "найти запись с ключем = N" перед добавлением не хочется, так как это происходит в цикле и очень часто буду пытаться добавить такую запись. Попробовал перехват ошибок Код:
но сообщение "Database_Exception [ 1062 ]: Duplicate entry '239178805' for key 'PRIMARY' [ INSERT INTO 'table' ..." все-равно вылезает, пробовал переключить в режим PRODUCTION - не помогло. Подскажите, пожалуйста, в какую сторону копать, чтобы решить проблему. |
Автор: | butschster [ 19 фев 2013, 11:16 ] |
Заголовок сообщения: | Re: Database_Exception [ 1062 ]: Duplicate entry '239178805' |
Не совсем понятно. Т.е. вы загрузили запись из бд, отредактировали ее и пытаетесь сделать UPDATE, но вместо этого ORM пытается сделать ее как INSERT? Соответсвенно ORM считает, что запись не загружена из БД, т.к. либо указан не верный первичный ключ либо чего то еще. |
Автор: | JSergRu [ 20 фев 2013, 00:02 ] |
Заголовок сообщения: | Re: Database_Exception [ 1062 ]: Duplicate entry '239178805' |
Не, из базы ничего не загружаю, в базу загружаю. Есть XML с объектами в количестве 3000, который парсить надо примерно раз в час и свойства каждого объекта сохранять в БД. У каждого объекта есть свой уникальный ID. Если MySQL-база пустая проблем не возникает, но при повторном парсинге (проверка на наличние новых записей) и возникает такая ошибка. Впринципе, я всетаки добавил условие: если есть в БД запись с ID, то не добавляем (т. к. это все-таки правильнее будет), но тем не менее решение исходного вопроса интересно. Т. е. при попытке добавить запись с ID, который уже есть в БД вылезает эта ошибка. |
Автор: | butschster [ 20 фев 2013, 13:28 ] |
Заголовок сообщения: | Re: Database_Exception [ 1062 ]: Duplicate entry '239178805' |
Обычно записи, которые есть в БД обновляют. У вас ID - это первичный ключ, он всегда уникальный, соответсвенно, когда вы добавляете в БД запись с таким же ключом, БД выдает ошибку, это логично! И не знаю почему это вызывает недоумение, возможно стоит изучить работу с БД |
Автор: | JSergRu [ 20 фев 2013, 14:35 ] |
Заголовок сообщения: | Re: Database_Exception [ 1062 ]: Duplicate entry '239178805' |
Задам вопрос по-другому: перехват ошибок не работает, почему? или как в переменную записать результат запроса? (без вывода ошибки) |
Автор: | rain2 [ 20 фев 2013, 19:11 ] |
Заголовок сообщения: | Re: Database_Exception [ 1062 ]: Duplicate entry '239178805' |
выложите участок кода полностью. и структуру базы данных |
Автор: | JSergRu [ 21 фев 2013, 04:45 ] |
Заголовок сообщения: | Re: Database_Exception [ 1062 ]: Duplicate entry '239178805' |
...\application\classes\Controller\Test.php Код:
...\application\classes\Model\Test.php Код:
База Код:
Браузер: .../test Цитата: Database_Exception [ 1062 ]: Duplicate entry '1' for key 'PRIMARY' [ INSERT INTO `tests` (`id`) VALUES ('1') ] MODPATH\database\classes\Kohana\Database\MySQL.php [ 194 ] 189 { 190 // This benchmark is worthless 191 Profiler::delete($benchmark); 192 } 193 194 throw new Database_Exception(':error [ :query ]', 195 array(':error' => mysql_error($this->_connection), ':query' => $sql), 196 mysql_errno($this->_connection)); 197 } 198 199 if (isset($benchmark)) MODPATH\database\classes\Kohana\Database\Query.php [ 251 ] » Kohana_Database_MySQL->query(arguments) MODPATH\orm\classes\Kohana\ORM.php [ 1321 ] » Kohana_Database_Query->execute(arguments) MODPATH\orm\classes\Kohana\ORM.php [ 1418 ] » Kohana_ORM->create(arguments) APPPATH\classes\Controller\Test.php [ 9 ] » Kohana_ORM->save() SYSPATH\classes\Kohana\Controller.php [ 84 ] » Controller_Test->action_index() {PHP internal call} » Kohana_Controller->execute() SYSPATH\classes\Kohana\Request\Client\Internal.php [ 97 ] » ReflectionMethod->invoke(arguments) SYSPATH\classes\Kohana\Request\Client.php [ 114 ] » Kohana_Request_Client_Internal->execute_request(arguments) SYSPATH\classes\Kohana\Request.php [ 990 ] » Kohana_Request_Client->execute(arguments) DOCROOT\index.php [ 118 ] » Kohana_Request->execute() Фреймворк: Kohana 3.3.0 |
Автор: | butschster [ 21 фев 2013, 17:07 ] |
Заголовок сообщения: | Re: Database_Exception [ 1062 ]: Duplicate entry '239178805' |
Если у вас ошибка возникает Код:
Код:
а не Код:
Может стоит все таки читать? |
Автор: | JSergRu [ 22 фев 2013, 00:14 ] |
Заголовок сообщения: | Re: Database_Exception [ 1062 ]: Duplicate entry '239178805' |
Спасибочки большое! )) |
Страница 1 из 1 | Часовой пояс: UTC + 4 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |