[英]How do I create this FOREIGN KEY? - Postgres
我有2張桌子。 我正在嘗試創建一個FORIEGN KEY
。 這是我的第一張表:
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"
。
我究竟做錯了什么?
引用的列必須是唯一的。 您應該將id聲明為主鍵:
CREATE TABLE bills(
id serial primary key,
...
必須聲明主鍵(或唯一)約束是顯式的。 類型serial僅確保默認值是序列中的下一個值。 例:
create table test (val1 serial, val2 serial);
insert into test (val2) values (1), (2), (default), (3), (4), (default);
select * from test;
val1 | val2
------+------
1 | 1
2 | 2
3 | 1
4 | 3
5 | 4
6 | 2
(6 rows)
父表bill(id)必須具有唯一或主鍵約束。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.