Nemůžete vytvořit prod_id
primární klíč table1
protože jedinými sloupci jsou dva složené typy info
a movie
. K základním typům těchto složených typů nemáte přístup v PRIMARY KEY
doložka.
To, o co jste se pokoušeli, funguje s omezením pk na info
nebo movie
.
Až to pravděpodobně není to, co jste hledali, což tímto způsobem není možné.
Můžete implementovat něco jako toto s ...
Dědičnost
Zde můžete dědit z více nadřazených tabulek (náhrada za vaše typy). Příklad:
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 předvedení obojího.
Nezapomeňte si přečíst o omezeních dědičnosti v příručce.