Plsql 无论何时购买或出售商品,都要在商品主表上维护库存数量
应在item_主表中至少保留3个库存 表:项目_主数据Plsql 无论何时购买或出售商品,都要在商品主表上维护库存数量,plsql,plsqldeveloper,datatrigger,database-trigger,eventtrigger,Plsql,Plsqldeveloper,Datatrigger,Database Trigger,Eventtrigger,应在item_主表中至少保留3个库存 表:项目_主数据 create table item_master ( item_no number(5) primary key, name varchar(10), stock_on_hand number(5) default 0 ); 表:项目详情 create table item_detail ( item_no number(5) references item_master, operation va
create table item_master
(
item_no number(5) primary key,
name varchar(10),
stock_on_hand number(5) default 0
);
表:项目详情
create table item_detail
(
item_no number(5) references item_master,
operation varchar(10) check(operation in('Sales','Purchase')),
quantity number(5)
);
insert into item_master values(101,'Chair',5);
insert into item_master values(102,'Sofa',4);
insert into item_master values(103,'Table',6);
CREATE OR REPLACE TRIGGER triitem AFTER
INSERT OR UPDATE OR DELETE ON item_detail
FOR EACH ROW
BEGIN
UPDATE item_master
SET
stock_on_hand =
CASE :new.operation
WHEN 'Sales' THEN stock_on_hand -:new.quantity
WHEN 'Purchase' THEN stock_on_hand +:new.quantity
END
WHERE item_no =:new.item_no;
END;
/
我写了这个触发器来维持至少3只股票
create or replace trigger tristk
before insert or update or delete on item_master
for each row
declare
stk number(5);
begin
select stock_on_hand into stk from item_master where item_no = :new.item_no;
if(stk<=3) then
raise_application_error(-20000,'Not enough stock');
end if;
end;
/
你的问题是什么?我的扳机坏了