質問: ーになる値が重複する可能性を回避するために念のために登録処理時に リトライ処理を追加したいのですが、insert時のsqlの結果をもとにリトライできるでしょうか それとも事前にselectしてからinsertすべきでしょうか? 例えば連番や時間などがキーになり並列処理などでたまたま値がかぶってしまった時を想定しています
回答: まず、なぜ一意な値が重複する可能性があるのか、という設計が問題のような気もしますが...... insert したときに一意性違反を検知したならば、Oracle であれば ORA-00001 エラーが返ります。 PHP で Oracle OCI8 を使っているなら、 ``` $err = oci_error(...); if (isset($err)) { if ($err['code'] == 1) { // 一意性違反 ... } } ``` といった感じのコードになるでしょうか。