在另一个表发生更改后,如何自动更新一个表?
说(请见下文)我有一张桌子countries
,还有一张桌子cities
。如何使在表中添加城市时cities
,total
表中的列自动更新(对应城市的增量)countries
?
有点儿 :
BEGIN; INSERT INTO cities VALUES ('Tokyo', 'Japan'); UPDATE countries SET total=1 WHERE name='Japan'; COMMIT;
,但是自动的,添加时执行 acountries.the_city.total++
cities.the_city
。
国家:
postgres=# SELECT * FROM countries;
name | total
-------+-------
USA | 0
Japan | 0
(2 rows)
城市:
postgres=# SELECT * FROM cities;
name | country
------+---------
(0 rows)
命令:
CREATE DATABASE geo;
\c geo;
CREATE TABLE countries (
name VARCHAR(15) PRIMARY KEY,
total int
);
CREATE TABLE cities (
name VARCHAR(15),
country VARCHAR(15),
FOREIGN KEY (country) REFERENCES countries(name)
);
语境:
标准 SQL 或 Postgres v16