1. ホーム
  2. sql

[解決済み] なぜ "参照されるテーブルの指定されたキーに一致する一意制約がありません" と表示されるのですか? エラー

2022-02-08 16:16:37

質問

これによると SO 回答 , 参照されたテーブルの指定されたキーに一致する一意制約がありません。 は、一意でないカラムに対して外部キー参照の呼び出しを行った場合に表示されるエラーです。しかし、なぜここでこのエラーが発生するのでしょうか?

postgres=# create database example;
CREATE DATABASE

postgres=# \c example
You are now connected to database "masterdb" as user "postgres".

masterdb=# create table foo(
id bigserial
);
CREATE TABLE

masterdb=# create table bar (
id bigserial,
foo_fid bigint not null references foo (id)
);
ERROR:  there is no unique constraint matching given keys for referenced table "foo"

解決方法は?

テーブルの参照カラムにユニークなインデックスが必要です。

CREATE TABLE foo(
    id BIGSERIAL UNIQUE
);