CREATE TABLE STORE(
ID CHAR(3),
AMOUNT NUMBER(3),
PRICE NUMBER(4,2),
SUMPRICE NUMBER(6,2)
);如何写一个触发器实现添加了ID,AMOUNT 和 PRICE后
自动计算SUMPRICE = AMOUNT * PRICE?我写了这个似乎没用
CREATE OR REPLACE TRIGGER T
AFTER INSERT ON STORE
FOR EACH ROW
BEGIN
UPDATE STORE STO
SET STO.SUMPRICE = :NEW.AMOUNT * :NEW.PRICE
WHERE STO.ID = :NEW.ID;
END;
ID CHAR(3),
AMOUNT NUMBER(3),
PRICE NUMBER(4,2),
SUMPRICE NUMBER(6,2)
);如何写一个触发器实现添加了ID,AMOUNT 和 PRICE后
自动计算SUMPRICE = AMOUNT * PRICE?我写了这个似乎没用
CREATE OR REPLACE TRIGGER T
AFTER INSERT ON STORE
FOR EACH ROW
BEGIN
UPDATE STORE STO
SET STO.SUMPRICE = :NEW.AMOUNT * :NEW.PRICE
WHERE STO.ID = :NEW.ID;
END;
解决方案 »
- 逻辑上的数据存放到物理上的数据存放的对应关系?
- TIMESTAMP类型---Value Error
- 关于Oracle的IN语法的问题
- 数据不一致的SQL怎么写?
- 底级问题,关于sql脚本执行的问题?
- 对于同一程序,在一个数据库软件里建多个数据库的原因?
- 求一个SQL语句,关于视图的建立,该如何写呢?我也不知道给多少合适,就给80吧
- 游标中再次定义游标(再次定义的游标要据第一次定义的游标取数据),如何实现?
- 局域网上的客户端如何用VB做前台,通过ODBC来连服务器?
- 两个用户之间进行数据导入,表名一样
- oracle last_value()over() 和first_value()over() 怎么使用
- 请帮我改一下这个触发器
BEFORE INSERT ON STORE
FOR EACH ROW
BEGIN
SELECT AMOUNT * PRICE INTO :NEW.SUMPRICE FROM DUAL;
END;
create or replace trigger t
before insert on store
for each row
begin
:new.sumprice:=:new.amount*:new.price;
end;
/
2 ID CHAR(3),
3 AMOUNT NUMBER(3),
4 PRICE NUMBER(4,2),
5 SUMPRICE NUMBER(6,2)
6 );Table created.SQL> CREATE OR REPLACE TRIGGER T
2 BEFORE INSERT ON STORE
3 FOR EACH ROW
4 BEGIN
5 SELECT :new.AMOUNT * :new.PRICE INTO :NEW.SUMPRICE FROM DUAL;
6 END;
7 /Trigger created.SQL> insert into store(id,amount,price) values('1',10,20);1 row created.SQL> select * from store;ID AMOUNT PRICE SUMPRICE
--- ---------- ---------- ----------
1 10 20 200SQL>