Du kan inte skapa prod_id
primärnyckeln för table1
eftersom de enda kolumnerna är de två sammansatta typerna info
och movie
. Du kan inte komma åt bastyperna för dessa sammansatta typer i en PRIMARY KEY
klausul.
Det du försökte göra fungerar med en pk-begränsning på info
eller movie
.
Förutom att det förmodligen inte är vad du letade efter, vilket inte är möjligt på det här sättet.
Du kan implementera något likt det här med ...
Arv
Här kan du ärva från flera överordnade tabeller (ersätt dina typer). Exempel:
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 demonstrerar båda.
Se till att läsa om begränsningar för arv i manualen.