簡體   English   中英

PostgreSQL使用來自不同表列的自動計算列創建表

[英]PostgreSQL create table with auto compute columns from different table columns

有以下表格,並想要創建表card ,其中列feeproduct_price.price + product_sale.b_rate計算, commproduct_price.price - product_sale.s_rate

有沒有辦法讓系統自動填寫表格card時表product_saleproduct_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       |    |
+---------+-------------+----+

您可以擁有“偽”虛擬列,而不是真正的真實列。 PostgreSQL可以將虛擬列模擬為表中的函數(不保留),但是,存在一些限制:

  • 虛擬列只能依賴於同一表的同一行和/或通用數據庫函數的值,而不能依賴於其他表的其他行。

  • 在選擇上使用*時,不會自動列出它們。 請參見模擬虛擬列

  • 它們無法索引。 意思是,如果您要按他們搜索,則搜索結果並非最佳。

現在,我想第一件事對您來說是一個破壞交易的因素。 這不是您所需要的。

我已經成功地多次使用了這個技巧。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM