PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tạo một bảng gồm hai loại trong PostgreSQL

Bạn không thể tạo prod_id khóa chính của table1 bởi vì các cột duy nhất là hai loại kết hợp infomovie . Bạn không thể truy cập các loại cơ sở của các loại kết hợp này trong PRIMARY KEY mệnh đề.

Những gì bạn đang cố gắng thực hiện hoạt động với một ràng buộc pk về info hoặc movie .
Ngoại trừ, nó có thể không phải là thứ bạn đang tìm kiếm, điều này không thể thực hiện được theo cách này.

Bạn có thể triển khai một cái gì đó như cái này với ...

Kế thừa

Ở đây bạn có thể kế thừa từ nhiều bảng cha (thay thế cho các kiểu của bạn). Ví dụ:

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 thể hiện cả hai.

Hãy nhớ đọc về các giới hạn của kế thừa trong sách hướng dẫn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có gì mới trong Postgres-XL 9.6

  2. CHỌN hoặc CHÈN trong một hàm có khuynh hướng gặp phải các điều kiện về chủng tộc không?

  3. Thực thi trình kích hoạt hoãn lại chỉ một lần trên mỗi hàng trong PostgreSQL

  4. Cách nhanh chóng để khám phá số hàng của một bảng trong PostgreSQL

  5. PostgreSQL Autoincrement