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;
解决方案 »
- oracle11g 使用过程中突然莫名其妙断开的问题(ORA-01034,ORA-27101)
- 主流关系数据库比较
- 安装oracle 10g Configuration Assistant "Oracle Net Configuration Assistant" 失败
- Oracle 取出某一时间段内数据
- 征用一个批处理文件用于导出DMP文件
- oracle高手进
- 删除用户时如何连带把它的数据也删除
- 求助:Oracle10g安装时提示“无法初始化ORC”,怎么解决啊?
- 文件读取的问题。
- "="与"like"有什么不同吗???
- 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>