Updating Data#
Use the UPDATE command.
mydb=> UPDATE farm_products SET price = price * 1.16; -- add 16% VAT perhaps
UPDATE 7
mydb=> SELECT * FROM farm_products LIMIT 3;
name | price | units_in_stock
---------+-------+----------------
Carrots | 1.74 | 64
Garlic | 2.32 | 40
unnamed | | 0
(3 rows)
You can add a WHERE clause to specify a condition that row(s) must meet in order to be updated:
mydb=> UPDATE farm_products SET name = 'unknown' WHERE name = 'unnamed';
UPDATE 2
mydb=> SELECT * FROM farm_products;
name | price | units_in_stock
----------+-------+----------------
Carrots | 1.74 | 64
Garlic | 2.32 | 40
Apples | 29.00 | 100
Bananas | 11.60 | 32
Cherries | 3.48 | 74
unknown | | 0
unknown | |
(7 rows)
You can update more than one column by listing more than one assignment in the SET clause:
mydb=> UPDATE farm_products SET price = 0, units_in_stock=0 WHERE name =
'unknown';
UPDATE 2
mydb=> SELECT * FROM farm_products;
name | price | units_in_stock
----------+-------+----------------
Carrots | 1.74 | 64
Garlic | 2.32 | 40
Apples | 29.00 | 100
Bananas | 11.60 | 32
Cherries | 3.48 | 74
unknown | 0.00 | 0
unknown | 0.00 | 0
(7 rows)