Anda tidak dapat membuat prod_id
kunci utama table1
karena satu-satunya kolom adalah dua jenis komposit info
dan movie
. Anda tidak dapat mengakses tipe dasar dari tipe komposit ini dalam PRIMARY KEY
klausa.
Apa yang Anda coba lakukan bekerja dengan batasan pk pada info
atau movie
.
Kecuali, mungkin bukan itu yang Anda cari, yang tidak mungkin dengan cara ini.
Anda dapat menerapkan sesuatu seperti ini dengan ...
Warisan
Di sini Anda dapat mewarisi dari beberapa tabel induk (pengganti tipe Anda). Contoh:
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 mendemonstrasikan keduanya.
Pastikan untuk membaca tentang batasan pewarisan dalam manual.