我正在尝试声明一个oracle触发器,当城市人口达到0时,它将更新城市名称,但是我得到了这个错误。
LINE/COL ERROR
--------- -------------------------------------------------------------
3/5 PL/SQL: Statement ignored
3/11 PLS-00201: identifier 'NEW.CITY_POPULATION' must be declared
Errors: check compiler log```
here is my code
```CREATE TRIGGER tr_Town_Death AFTER UPDATE 论城市
对于每一行开始
IF NEW.city_population = 0 THEN UPDATE Cities SET city_name = 'Ghost town' WHERE city_id = NEW.city_id;END IF;END tr_Town_Death;`
发布于 2021-05-15 01:41:23
:new伪记录,则需要以冒号作为前缀。cities上的触发器通常不能查询cities表。在本例中,您似乎希望修改触发器要触发的行中的数据,因此您只想更新导致触发器触发的行的pseudo-record.before update触发器。当我们做出这些改变的时候,你最终会得到这样的结果
CREATE TRIGGER tr_Town_Death
BEFORE UPDATE
ON Cities
FOR EACH ROW
BEGIN
IF :NEW.city_population = 0
THEN
:new.city_name := 'Ghost town';
END IF;
END tr_Town_Death;https://stackoverflow.com/questions/67542518
复制相似问题