PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Създайте таблица от два типа в PostgreSQL

Не можете да направите prod_id първичният ключ на table1 защото единствените колони са двата съставни типа info и movie . Не можете да получите достъп до базовите типове на тези съставни типове в PRIMARY KEY клауза.

Това, което се опитвахте да направите, работи с pk ограничение за info или movie .
Освен това вероятно не е това, което търсите, което не е възможно по този начин.

Можете да приложите нещо като това с ...

Наследство

Тук можете да наследявате от множество родителски таблици (заместител на вашите типове). Пример:

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 демонстрира и двете.

Не забравяйте да прочетете за ограниченията на наследяването в ръководството.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да анализирам JSON в postgresql

  2. Как да освободя възможни заключвания на редове на Postgres?

  3. Как да форматирам bigint поле в дата в Postgresql?

  4. Как да показвате нулеви стойности при изпълнение на заявки в psql (PostgreSQL)

  5. Използване на множество PostgreSQL схеми с Rails модели