SSJ Tech Lab - Oracle Database テクニカルラボ

ORA-2270, ORA-02270 の原因と対処

対応バージョン

10.1 - 19.1

2020-05-05記事公開

ORA-2270は自体は単純なエラーで、外部キー(FOREIGN KEY)の作成時、参照先列に主キー制約、または一意制約がない場合に発生します。
エラー自体は単純なのですが、ユニークインデックス作ることで対応出来るという勘違いを2回ほど繰り返し、検索ですぐに理由が出てこなかったのでこちらで公開させていただくことにしました。

エラーメッセージ

ORA-02270: この列リストに対して一致する一意キーまたは主キーが存在しません。
ORA-02270: no matching unique or primary key for this column-list
https://docs.oracle.com/cd/F19136_01/errmg/ORA-02140.html
データベース・エラー・メッセージ
19c
F18117-03(原本部品番号:E95938-04)
4 ORA-01500からORA-02098

発生原因

create table や alter table による外部キー(FOREIGN KEY)の作成時、参照先列に主キー制約、または一意制約がない場合に発生します。

対処方法

参照先となる表の列に主キー制約か一意制約を付与します。(筆者が勘違いした部分で、create unique indexでは一意制約とみなされません。)
恐らく引っかかるほとんどの方は一意制約だと思いますので、一意制約の追加例を載せておきます。REFERENCE_TABLEを参照するTEST_TABLEを作成します。


関連記事

関連記事が存在しません