2011-11-12 8 views
1

私はaという列のテーブルを持っていると言います。インデックスはUNIQUE KEYです。Database_Exceptionの主キーを取得する方法Kohana 3.2で[1062]( "duplicate entry")?

ORMモデルでは、そのテーブルに挿入しようとしています。

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

今、私はすでに私が複製しようとしたものをそのコンテンツを持っているエントリの主キーを取得しようとしている:これは、ユーザーが一意ではありません列aで何かを挿入しようとしたときに発生Database_Exception [ 1062 ]をキャッチする方法です。それ以上のSQLクエリなしで可能ですか?その行の主キーがどこかに返されることを願っています。

申し訳ありませんがノンセンスですが、説明するのはちょっと難しかったです。アドバイスありがとう!

+0

私はそうは思わない。しかし、 'a'はユニークなインデックスを持っているので、プライマリキーの代わりに' $ this-> a'を使って、そのテーブルで何が必要なのかを問うことができます。 –

答えて

0

いいえ、これは考えられません。

これは、例外からのその重複したエントリに対してを持つことも期待されていません。

  • これは、この例外をスローするデータベースです。
  • データベースが何らかの形でそのメッセージを報告できるかどうかは可能です。しかし、多くの情報が必要な多くの同様のケースが発生します。そして、すべてのデータベースベンダーがこれを確認する必要がありますが不可能だと私は信じています。
関連する問題