sql >> データベース >  >> RDS >> Oracle

ORA-02270:この列リストに一致する一意キーまたは主キーがありません

    コンポジット(またはコンパウンド)キー を作成しています これをプライマリにすることによって:

    ("COURSE_ID", "ACCREDITATION_BODY_ID", "DATE_OBTAINED")
    

    次に、ACCREDITATION_BODY_IDを作成しようとします 同じテーブルの同じ列を参照する外部キー。何を達成しようとしているのかわかりませんが、とにかく、そうではありません それを行う正しい方法。

    私の意見では、理由は次のとおりです: ACCREDITATION_BODY_ID 外部キーとして参照されるためには主キーである必要がありますが、ここではそうではありません。テーブルの制約は複合キーです 、およびすべてを参照する必要があります 外部キーステートメントの列。 (間違っている場合は修正してください)

    外部キーステートメントのすべての複合キー列を参照してみてください。それはあなたの問題を解決するかもしれません。

    ちなみに、同じテーブルで主キーを外部キーとして参照しても、私には意味がありませんでした(何かが足りないかもしれませんが、それでも..)。デザインを変更することを検討したいと思います。




    1. DBにレコードなしでINSERTをしたい

    2. 自己参照テーブルのカスケードの削除時

    3. 集合体データテーブル

    4. OracleでCLOBをBLOBに変換するにはどうすればよいですか?