Oracle SQL触发器在插入/更新时计算2个值并更新第三个值

阿提拉

我想创建一个触发器,该触发器将通过计算2个值来更新行并更新第三个值:

CREATE TABLE Customers (
    Cust_ID INTEGER PRIMARY KEY,
    Dates TIMESTAMP WITH LOCAL TIME ZONE,
    Quantity dec(7,2) NOT NULL,
    Price_per_item dec(7,2) NOT NULL,
    Total_price dec(7,2)
);

我已经做到了:

CREATE OR REPLACE TRIGGER cust_after_insert AFTER INSERT 
ON Customers
FOR EACH ROW
BEGIN
    UPDATE Customers
    SET 
    DATES = CURRENT_TIMESTAMP,
    Total_price = Quantity * Price_per_item;
END;

我遇到一些错误,尝试同时查看和编辑表。

我也尝试过这个:

CREATE SEQUENCE cust_Seq START WITH 1 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER cust_trig BEFORE INSERT ON Customers
FOR EACH ROW
BEGIN
  SELECT cust_Seq.nextval INTO :new.Fuel_ID FROM dual;
  SELECT CURRENT_TIMESTAMP INTO :new.DATES FROM dual;
  SELECT Quantity * Price_per_item INTO :new.Total_price FROM dual;
END;
/

我更喜欢第二种选择,如果还要进行更新,我将需要一些东西。

穆雷尼克

第二种方法是朝着正确的方向发展,但它需要进行一些调整以处理Total_price计算并也处理updates:

CREATE SEQUENCE cust_Seq START WITH 1 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER cust_trig BEFORE INSERT OR UPDATE ON Customers
FOR EACH ROW
BEGIN
  IF INSERTING THEN
    SELECT cust_Seq.nextval INTO :new.Fuel_ID FROM dual;
    SELECT CURRENT_TIMESTAMP INTO :new.DATES FROM dual;
  END IF;
  :new.Total_price :=  :new.Quantity * :new.Price_per_item;
END;
/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何编写一个触发器来检查 Oracle 中的更新值?

来自分类Dev

Oracle触发器插入/更新到另一个表

来自分类Dev

Oracle触发器不会在另一个表中插入值

来自分类Dev

Oracle PL/SQL 触发器:在更新语句后自动重置列值

来自分类Dev

sql计算2个值共享第三个值的次数

来自分类Dev

尝试创建一个触发器来在更改另一个表中的值时更新表(oracle apex)

来自分类Dev

通过映射第三个表查询联接两个表,而无需从Oracle中的第三个表返回所有记录

来自分类Dev

通过触发器在Oracle 11g更新后更新值

来自分类Dev

oracle触发器选择更新的行

来自分类Dev

Oracle触发器不会更新

来自分类Dev

Oracle更新触发器问题

来自分类Dev

更新Oracle触发器之前的问题[PL / SQL]

来自分类Dev

更新不同表的 Oracle PL/SQL 触发器

来自分类Dev

Oracle SQL-触发器插入到表中,并从序列中传递空值

来自分类Dev

触发器为什么不更新Oracle数据库中的列值?

来自分类Dev

Oracle触发器更改值

来自分类Dev

如何在 Oracle SQL 中的第一个连字符之后和第三个连字符之前提取数据

来自分类Dev

检查新旧表值的Oracle SQL触发器

来自分类Dev

比较Excel工作表中的值以更新第三个值

来自分类Dev

替换第三个值

来自分类Dev

Oracle SQL触发器

来自分类Dev

如果在更新触发器之前未在oracle中通过更新进行更新,则新值与旧值相同

来自分类Dev

在Oracle触发器中运行多个插入和更新语句

来自分类Dev

在Oracle SQL Developer中插入后如何添加触发器以自动计算行数

来自分类Dev

Oracle更新序列值

来自分类Dev

按两个值分组并计算第三个值

来自分类Dev

Oracle PL / SQL触发器-捕获名称错误的插入

来自分类Dev

Oracle PL / SQL触发器-捕获名称错误的插入

来自分类Dev

插入或删除后Oracle触发器

Related 相关文章

  1. 1

    如何编写一个触发器来检查 Oracle 中的更新值?

  2. 2

    Oracle触发器插入/更新到另一个表

  3. 3

    Oracle触发器不会在另一个表中插入值

  4. 4

    Oracle PL/SQL 触发器:在更新语句后自动重置列值

  5. 5

    sql计算2个值共享第三个值的次数

  6. 6

    尝试创建一个触发器来在更改另一个表中的值时更新表(oracle apex)

  7. 7

    通过映射第三个表查询联接两个表,而无需从Oracle中的第三个表返回所有记录

  8. 8

    通过触发器在Oracle 11g更新后更新值

  9. 9

    oracle触发器选择更新的行

  10. 10

    Oracle触发器不会更新

  11. 11

    Oracle更新触发器问题

  12. 12

    更新Oracle触发器之前的问题[PL / SQL]

  13. 13

    更新不同表的 Oracle PL/SQL 触发器

  14. 14

    Oracle SQL-触发器插入到表中,并从序列中传递空值

  15. 15

    触发器为什么不更新Oracle数据库中的列值?

  16. 16

    Oracle触发器更改值

  17. 17

    如何在 Oracle SQL 中的第一个连字符之后和第三个连字符之前提取数据

  18. 18

    检查新旧表值的Oracle SQL触发器

  19. 19

    比较Excel工作表中的值以更新第三个值

  20. 20

    替换第三个值

  21. 21

    Oracle SQL触发器

  22. 22

    如果在更新触发器之前未在oracle中通过更新进行更新,则新值与旧值相同

  23. 23

    在Oracle触发器中运行多个插入和更新语句

  24. 24

    在Oracle SQL Developer中插入后如何添加触发器以自动计算行数

  25. 25

    Oracle更新序列值

  26. 26

    按两个值分组并计算第三个值

  27. 27

    Oracle PL / SQL触发器-捕获名称错误的插入

  28. 28

    Oracle PL / SQL触发器-捕获名称错误的插入

  29. 29

    插入或删除后Oracle触发器

热门标签

归档