Как получить первичный ключ Database_Exception [1062] («повторяющаяся запись») в Kohana 3.2? - PullRequest
1 голос
/ 12 ноября 2011

Допустим, у меня есть таблица со столбцом с именем a. На нем индекс UNIQUE KEY.

В модели ORM я пытаюсь вставить в эту таблицу. Это способ отловить Database_Exception [ 1062 ], который происходит, когда пользователь пытается вставить в столбец a что-то не уникальное:

function save(Validation $validation = null) {
     try {
         parent::save($validation);
     } 
     catch (Database_Exception $exception) {
         if ($exception->getCode() === 1062) {
            // PK?
         }
     }
}

Теперь я пытаюсь получить первичный ключ записи, в котором уже есть тот контент, который я пытался продублировать. Это возможно без каких-либо дополнительных запросов SQL? Я надеюсь, что первичный ключ этой строки где-то возвращается.

Извините за бессмысленность, но это было довольно сложно объяснить. Спасибо за совет!

1 Ответ

0 голосов
/ 13 ноября 2011

НЕТ, это невозможно.

Также не ожидается, что primary key для этой дублирующейся записи из исключения.

  • Это базовая база данных, которая выдает это исключение.
  • Это могло бы быть возможно, если бы база данных могла как-то сообщить об этом сообщении. Но это приведет ко многим подобным случаям, когда требуется гораздо больше информации. И все поставщики базы данных должны подтвердить это, я считаю, что это невозможно.
...