如果今天我們我一張表格要紀錄每一間店的銷售以及店號,要避免重覆的情況發生。我們可以利用以下語法建立表格,限制no以及shop 的組合不能重覆。
CREATE TABLE shop_sale
(
id serial NOT NULL,
no character(10) NOT NULL,
shop character(10) NOT NULL,
edittime time without time zone,
CONSTRAINT demo_pkey PRIMARY KEY (no,shop )
)
今天我們新增二筆A001店的交易,是OK的。
INSERT INTO shop_sale( no, shop, edittime) VALUES ('1031204001', 'A001', statement_timestamp()); INSERT INTO shop_sale( no, shop, edittime) VALUES ('1031204002', 'A001', statement_timestamp());接下來我們新增二筆A002店的交易,也是OK的。
INSERT INTO shop_sale( no, shop, edittime) VALUES ('1031204001', 'A002', statement_timestamp()); INSERT INTO shop_sale( no, shop, edittime) VALUES ('1031204002', 'A002', statement_timestamp());接下來我們意外再次新增一筆A002店的1031204001交易,就會出現錯誤了。
錯誤: 重複的鍵值違反唯一限制 "demo_pkey"
DETAIL: Key "(no, shop)=(1031204002, A002 )" 已存在
********** Error **********
錯誤: 重複的鍵值違反唯一限制 "demo_pkey"
SQL state: 23505
Detail: Key "(no, shop)=(1031204002, A002 )" 已存在
沒有留言:
張貼留言