U kunt geen prod_id . maken de primaire sleutel van table1 omdat de enige kolommen de twee samengestelde typen zijn info en movie . U heeft geen toegang tot de basistypen van deze samengestelde typen in een PRIMARY KEY clausule.
Wat u probeerde te doen, werkt met een pk-beperking op info of movie .
Behalve, het is waarschijnlijk niet wat u zocht, wat op deze manier niet mogelijk is.
Je zou iets kunnen implementeren zoals dit met ...
Overerving
Hier kunt u overnemen van meerdere bovenliggende tabellen (vervang uw typen). Voorbeeld:
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 beide demonstreren.
Lees over de beperkingen van overerving in de handleiding.