prod_id
を作成することはできません table1
の主キー 列は2つの複合タイプinfo
のみであるため およびmovie
。 PRIMARY KEY
でこれらの複合タイプの基本タイプにアクセスすることはできません。 条項。
あなたがやろうとしていたことは、info
のpk制約で機能します またはmovie
。
ただし、それはおそらくあなたが探していたものではなく、この方法では不可能です。
のようなものを実装できます これで...
継承
ここでは、複数の親テーブルから継承できます(タイプの代わりに使用できます)。例:
CREATE TABLE info (
prod_id integer
,category integer
);
CREATE TABLE movie (
title text
,actor text
,price float
);
CREATE TABLE movie_info (
PRIMARY KEY(prod_id) -- now we can use the base column!
)
INHERITS (info, movie);
INSERT INTO movie_info (prod_id, category, title, actor, price)
VALUES (1, 2, 'who donnit?', 'James Dean', '15.90');
SELECT * FROM movie_info;
-> SQLfiddle 両方を示しています。
マニュアルの継承の制限について必ずお読みください。