初めまして&ORA-00001
初めまして。
ブログ始めました。
以前から技術系の小ネタを纏めたいなぁ、
て思ってたものの、中々に踏み切れず。
今回、思い切って始めてみたという経緯です。
主に、開発時に悩んだことを繰り返さぬよう、
備忘録的に書いていきたいところです。
さて。
第1回目目はOracleエラーについて。
「ORA-00001: 一意制約に反しています 」って
よく遭遇しますよね。
insert~value時に発生するのなら、
「あぁ、プライマリキーが同じレコードが登録済みなのね」
で解決です。
しかしー、副問い合わせ(select)結果を
insertする場合、そう簡単には行かないものです。
副問い合わせの結果、複数件レコードが帰ってくる場合、そこに重複レコードがあるとそいつをinsertしようとしてORA-00001。。
副問い合わせには、プライマリキーとなるカラムが一意になるよう、where句設定しましょ、
ってことですな。
今日悩んだのは、副問い合わせで一件しか取得しない想定なのに実は複数件取得してて、結果、
Oracleエラーと。
where句の条件不足が原因。
既存バグめ!
「まさか複数件取得するわけねぇ」て思いこみ、
これが最大の原因ですね。
てことで一回目終了。
レベル低くてすいません~。