2016-08-23 7 views
-2

このエラーメッセージ:oci_execute():ORA-00001:一意制約(SCHEMA_NAME.NAME制約が)、私はどのようにもっと単純にエラーを処理するためにしていない場合、私は疑問に思うCodeIgniterのORA-00001:一意制約

に違反より一般的な

それ以外の場合は、追加する前にデータをチェックするためにモデルの各機能を使用する必要があります。重複がないため、上記のエラーは発生しません。

誰もこれを解決する簡単な方法を知っていますか?

ありがとうございました。

+1

テーブル定義や制約は表示されませんが、重複値が制約のある行を挿入しようとすると、アプリに問題が発生している可能性があります。 – OldProgrammer

答えて

0

重複したデータを挿入せずにステートメントを成功させるためのヒントがあります。これは、ジョブが同じデータを複数回挿入しようとする可能性があるレプリケーションまたは大量データのロードに役立ちます。私はユーザーアプリケーションの一部としてそれをお勧めしません。

は「IGNORE_ROW_ON_DUPKEY_INDEXヒントは、単一テーブルのINSERT操作にのみ適用されます。これは、UPDATEのためにサポートされていない、DELETE、MERGE、またはマルチテーブル挿入操作。IGNORE_ROW_ON_DUPKEY_INDEXは、列の指定されたセットの一意のキー違反を無視する声明を引き起こしたり一意のキー違反が発生すると、行レベルのロールバックが発生し、次の入力行で実行が再開されます。

+0

申し訳ありませんが、私を説明させてください。 重複したデータを挿入することはできません。私は挿入物を作るときにそれを扱うことができることを知っている、問題のレコードが既に登録されていないことを確認する。 問題は、このシステムが準備ができていて、変更する画面がたくさんあることです。 私が欲しかったのは、同じエラーの戻り値を取得してユーザーにメッセージを伝えるためにこのエラーを処理する方法がないかどうかを知ることでした。ですから、私はさまざまなモデルでいくつかのメソッドを変更しません。 ありがとうございます。 –

関連する問題