CONTENT
こんにちは、東京エンジニアのHです。
今回はOracleでテーブルを作成した時に工夫すべき点について紹介させて頂きます。
基本的にTableのデータは全く同じデータは存在出来ないため、それを防止するために「一意制約違反エラー」があります。
しかし、Web上で入力フォームを通して顧客がデータを入力・選択して登録されるタイプのテーブルの場合、意図していない場合でもこの「一意制約違反エラー」が発生してしまう可能性があります。
上記のような顧客Cの「一意制約違反エラー」を避けるために必要なのがNo.のカラム。
No.を設けることにより全く同じデータにはならないのでエラーを回避できます。
また、Oracleの場合はソース上でシーケンスを利用することで簡単に自動で連番を作成できるので、キャッシュなしのシーケンスとしてオブジェクトを作成しておけばNo.は最新のもの+1で自動で設定してくれます。
CREATE SEQUENCE TEST_01
MINVALUE 1
START WITH 1
INCREMENT BY 1
NO CACHE
ほんの一例でしたが、様々なケースに対応できるようにものづくりを行うのが我々エンジニアの仕事です!