如何在 oracledb 中创建条件?

how do I create a condition in oracledb?

如何在 oracle 数据库上创建条件?我是这个数据库的新手。 我已经创建了名为 vehicle_parked 的 table,但如果 parkedOnSite 值为 'F' 且结构如下

,我想将车辆编号触发为 NULL

vehicle_parked

 - parked_id number(4) PK
 - arrivalTime date
 - parkedOnSite varchar(1) // value will be T/F
 - vehicle_number varchar(8)

谢谢。

您可以通过创建一个 DML trigger 来轻松操作您的数据,该 DML trigger 在您的数据插入 table 之前触发并更改数据。

CREATE OR REPLACE TRIGGER trg_vehicle_parked
BEFORE INSERT OR UPDATE
   ON vehicle_parked
   FOR EACH ROW    
DECLARE

BEGIN
  if :new.parkedOnSite = 'F' then
   :new.vehicle_number := null;
  end if;
END;
/

在触发器中,除了:new,我们还可以使用:old伪代码。它们代表在(:old)或之后(:new)DML 语句发出之前的列的值。 特别是对于 updatedelete 触发器,您可以在触发器中比较列的旧值和新值,如示例所示:

if ( nvl(:old.vehicle_number,0) != nvl(:new.vehicle_number,0) ) then
  go_on_with_statement ....