PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Buat tabel dua jenis di PostgreSQL

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Membuat API GraphQL Tanpa Server untuk MySQL, Postgres, dan Aurora

  2. postgreSQL - dalam vs apa pun

  3. Ancaman Keamanan PostgreSQL Teratas

  4. Penyeimbangan Beban PostgreSQL Menggunakan HAProxy &Keepalive

  5. Kembali dari fungsi dengan parameter OUT