我有2個表格。我正在嘗試創建一個FORIEGN KEY
。這是我的第一個表:如何創建這個FOREIGN KEY? - Postgres
CREATE TABLE bills(
id serial,
name varchar(100),
payment decimal(12, 2),
payoff decimal(12, 2),
type varchar(25)
)
當我嘗試創建一個第二個表:
CREATE TABLE pay_dates(
id serial,
bill_id integer REFERENCES bills(id),
due_date date,
pay_date date,
paid boolean
)
我得到這個錯誤:
ERROR: there is no unique constraint matching given keys for referenced table "bills"
。
我在做什麼錯?
so'id serial' is not unique? – jhamm
@jhamm不,「SERIAL」並不意味着唯一。這意味着:「請在我的數據庫中創建一個'SEQUENCE'對象,並使用該序列中的數字作爲此表新行中的默認值」。請參閱[文檔](http://www.postgresql.org/docs/current/static/datatype-numeric.html#DATATYPE-SERIAL)並仔細閱讀擴展的SQL。將列標記爲「UNIQUE」(或「PRIMARY KEY」)表示「請在此列上創建索引,並使用該索引始終檢查新列或修改後的行是否已存儲在此列中其他行上的重複值」。 SERIAL和UNIQUE/PRIMARY KEY做不同的工作。 –