PostgreSQL создает таблицу с автоматическими вычислениями столбцов из разных столбцов таблицы - PullRequest
0 голосов
/ 01 июня 2018

Имеют следующие таблицы и хотят создать таблицу card, где столбцы fee рассчитываются как product_price.price + product_sale.b_rate, а comm вычисляется как product_price.price - product_sale.s_rate

, есть ли способ автоматического заполнениятаблица card, когда таблица product_sale и product_price заполняется.

например, создать таблицу card с вычисляемым столбцом или функцией?

нужна помощь

product_sale
+---------+-------------+----+
| column  |    type     | pk |
+---------+-------------+----+
| s_date  | date        | Y  |
| seller  | varchar(50) | Y  |
| country | varchar(50) | Y  |
| b_rate  | float       |    |
| s_rate  | float       |    |
+---------+-------------+----+

product_price
+---------+-------------+----+
| column  |    type     | pk |
+---------+-------------+----+
| p_date  | date        | Y  |
| product | varchar(50) | Y  |
| price   | varchar(50) |    |
+---------+-------------+----+


card
+---------+-------------+----+
| column  |    type     | pk |
+---------+-------------+----+
| c_date  | date        | Y  |
| seller  | varchar(50) | Y  |
| country | varchar(50) | Y  |
| fee     | float       |    |
| comm    | float       |    |
+---------+-------------+----+

1 Ответ

0 голосов
/ 01 июня 2018

Вы можете иметь «псевдо» виртуальные столбцы, а не настоящие.PostgreSQL может эмулировать виртуальные столбцы как функции таблицы (не сохраняются). Однако есть несколько ограничений:

  • Виртуальные столбцы могут зависеть только от значений в одной строке одной и той же таблицы и/ или универсальные функции базы данных, а не другие строки других таблиц.

  • Они не отображаются автоматически при использовании * в выборе.См. Эмуляция виртуальных столбцов .

  • Они не могут быть проиндексированы.Это означает, что если вы хотите выполнить поиск по ним, поиск будет менее чем оптимальным.

Теперь, я думаю, первый пункт является для вас прерывателем сделки.Это не то, что вам нужно.

Я уже несколько раз успешно использовал этот трюк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...