【发布时间】:2013-01-24 04:43:07
【问题描述】:
我有两张桌子。我想在car 表上创建一个触发器,它将根据某个值在fuel 表上插入或删除。
汽车
id - SERIAL
fuel - BOOLEAN
燃料
car_id - INTEGER
我没有包含任何行数据,因为触发器的描述不需要它。
基本上,我想在Car 表上创建一个触发器:
- 在插入或更新时运行。
- 如果
Car.fuel is true,则将Car.id插入Fuel表中。 - 如果是
Car.fuel is false,触发器应该删除Fuel表中Fuel.car_id = Car.id所在的所有行。
我该怎么做?
编辑:澄清我正在使用 Postgres
【问题讨论】:
-
我一直认为 PSQL 是 Postgres 的标识符。但是是的,我使用的是 postgres :)
-
psql主要是 Postgres 的缩写,这是真的。但它也可能是一个错字,意思是PL/PSQL(这是Oracle 的程序语言)。 Postgres 的过程语言称为PL/pgSQL -
有很多问题需要处理。如果有更新,应该触发什么,这不会改变“燃料”的值。 id变了怎么办?如果更新前或更新后的燃料为空,该怎么办?
标签: sql postgresql triggers constraints