Не можете да направите prod_id
първичният ключ на table1
защото единствените колони са двата съставни типа info
и movie
. Не можете да получите достъп до базовите типове на тези съставни типове в PRIMARY KEY
клауза.
Това, което се опитвахте да направите, работи с pk ограничение за info
или 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 демонстрира и двете.
Не забравяйте да прочетете за ограниченията на наследяването в ръководството.