2017-05-11 12 views
0

私は小さな請求書作成ソリューションを開発しており、1ユニットの価格を保存するためにカラムを追加する必要があります。私はすでにすべてのユニットの合計とdbの数量の列を持っています。PostgreSQLデータベースの更新中に数学を行う

私の質問は、この列を追加して正確な数値を入力するにはどうすればいいですか?私は式がなることを知っている:あなたのデータベースは、私は次のことを行うと、テーブルがinvoicesと呼ばれ、mydbと呼ばれ、列がunit_colであると仮定すると

total_col/quantity_col = unit_col

+0

が列を作成しないでください:

は、おそらくより良い、解決策は、あなたが望む計算列を持つビューを設定することです。クエリ時に計算します。 –

答えて

1

:PostgreSQLデータベースへ

接続経由通常psql mydbし、コマンドラインを、以下:ここ

ALTER TABLE invoices 
ADD COLUMN unit_col real; 

UPDATE invoices SET unit_col = total_col/quantity_col; 
2

は、SOMとの新しい列を移入する例でありますe派生値:

create table products (
    total_col int, 
    quantity_col int); 

ALTER TABLE products ADD COLUMN unit_col numeric(10,2) default null; 
update products set unit_col=total_col::float/quantity_col; 

この列を最新の状態に保つためにトリガーを設定したいと思うでしょう。これは永続的な計算列として知られているものです。

create table products (
    total_col int, 
    quantity_col int); 

create view productsWithUnitCol as 
    select *, total_col::float/quantity_col as unit_col from products; 
関連する問題