2017-05-11 3 views
0

Ich arbeite an einer kleinen Rechnungslösung und ich muss eine Spalte hinzufügen, um den Preis einer Einheit zu speichern. Ich habe bereits eine Spalte für alle Einheiten und die Menge in der Datenbank.Mathe beim Aktualisieren der Postgresql-Datenbank

Meine Frage ist, wie kann ich diese Spalte hinzufügen und sie mit genauen Zahlen füllen? Ich weiß, dass Formel sein:

total_col/quantity_col = unit_col

+0

Erstellen Sie keine Spalte. Berechne zur Abfragezeit. –

Antwort

1

Datenbank Unter der Annahme mydb aufgerufen wird, wird die Tabelle invoices genannt, und die Spalte ist unit_col ich folgendes tun würde:

Verbindung zu Ihrem postgresql Datenbank über Befehlszeile, typischerweise psql mydb und dann die folgenden:

ALTER TABLE invoices 
ADD COLUMN unit_col real; 

UPDATE invoices SET unit_col = total_col/quantity_col; 
2

Hier ist ein Beispiel für eine neue Spalte mit som bevöl~~POS=TRUNC e abgeleiteter Wert:

Sie sollten einen Trigger einrichten, um diese Spalte auf dem neuesten Stand zu halten. Dies ist, was als eine persistente, berechnete Spalte bekannt ist.

Eine andere, vielleicht bessere Lösung ist es, eine Ansicht einrichten, die die berechnete Spalte hat Sie wollen:

create table products (
    total_col int, 
    quantity_col int); 

create view productsWithUnitCol as 
    select *, total_col::float/quantity_col as unit_col from products; 
Verwandte Themen