No puede hacer prod_id
la clave principal de table1
porque las únicas columnas son los dos tipos compuestos info
y movie
. No puede acceder a los tipos base de estos tipos compuestos en una PRIMARY KEY
cláusula.
Lo que intentabas hacer funciona con una restricción de pk en info
o movie
.
Excepto que probablemente no sea lo que estabas buscando, lo cual no es posible de esta manera.
Podrías implementar algo como esto con...
Herencia
Aquí puede heredar de varias tablas principales (sustituir sus tipos). Ejemplo:
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;
-> violín SQL demostrando ambos.
Asegúrese de leer sobre las limitaciones de la herencia en el manual.