创建触发器时出现 PLS-00049: 错误的赋值变量 ':NEW.land_name'

create or replace trigger t_hang_info
before insert or update or delete on hang_info
for each row
declare
    pbCount number;
begin
    select count(LANDID) into pbCount from TRADECENTER_LANDHANG where LANDID = :new.land_no;
    if inserting or updating then
        if pbCount<=0 then
            insert into TRADECENTER_LANDHANG (
            INFORID,
            LANDID,
            LANDNAME,
            STARTTIME,
            ENDTIME,
            HIGHESTPRICE,
            INCPRICE
            ) values (
            :new.hang_no,
            :new.land_no,
            :new.land_name,
            :new.hang_start_date,
            :new.hang_end_date,           
            :new.hang_start_price,
            :new.hang_inc_price           
            );
        else
            update TRADECENTER_LANDHANG set
            INFORID = :new.hang_no,
            LANDID = :new.land_no,
            LANDNAME = :new.land_name,
            STARTTIME = :new.hang_start_date,
            ENDTIME = :new.hang_end_date,
            --HIGHESTPRICE = :new.hang_start_price,
            INCPRICE = :new.hang_inc_price
            where landid = :new.land_no;
        end if;
    end if;
    if deleting then
      delete from TRADECENTER_LANDHANG where landid = :old.land_no;
    end if;
end;

两个带颜色的地方报错

PLS-00049: 错误的赋值变量 ':new.land_name'

PLS-00049: 错误的赋值变量 ':new.land_name'

检查表结构后发现是我已经把land_name字段总表hang_info中删除了,所以造成这样的错误,加上之后就测试通过了。

你可能感兴趣的:(创建触发器时出现 PLS-00049: 错误的赋值变量 ':NEW.land_name')