bar
名前付きインデックスに裏打ちされた名前付き外部キー制約を持つテーブルを作成したいと考えています。create table DDL ステートメントのインライン定義でそれを行いたいと思います。Oracle 19 SQL 言語リファレンスを見ると、Oracle はインラインでの実行をサポートする必要があるようです。
次のステートメントを実行すると...
create table foo (
id number not null primary key
);
create table bar (
id number not null primary key,
nick varchar2(16) not null constraint foo_nick_ck unique using index,
foo_id number not null constraint foo_fk references foo using index
);
オラクルは、最終行の の[42000][907] ORA-00907: missing right parenthesis
直前の位置をポイントして応答します。using index
削除するusing index
と機能します(ただし、もちろんインデックスは作成されません)。バッキング インデックスをインラインで作成する場所の例として列を保持しましたnick
が、外部キー制約の代わりに一意の制約を使用します。
別の DDL ステートメントでバッキング インデックスを作成することが回避策であることは承知していますが、インラインで整然としたものにしたいと考えています。