gpt4 book ai didi

sql - 在 pl/sql 中插入触发器

转载 作者:行者123 更新时间:2023-12-04 20:15:44 25 4
gpt4 key购买 nike

我在 pl/sql 中找不到以下问题的正确结构:需要在“产品表”上设置一个触发器,在插入新产品之前检查价格,产品价格不得超过 4000 美元。

CREATE or REPLACE TRIGGER pro 
BEFORE UPDATE OF price
ON products
FOR EACH ROW
declare
pr products.price%type;
BEGIN
if pr < 4000 then
INSERT INTO products VALUES (:old.product_ID,:old.price);
end if;
END;

请帮忙

最佳答案

使用 check constraint而不是触发器:

create table products (price number);

ALTER TABLE PRODUCTS ADD CONSTRAINT check_price CHECK (price < 4000);

测试:

insert into products values (5000)  => ERROR

编辑:如果你坚持触发版本:

CREATE or REPLACE TRIGGER pro BEFORE insert or UPDATE OF price ON products 
FOR EACH ROW
BEGIN
if :new.price > 4000 then
raise_application_error(-20101, 'Price exceeds 4000.');
end if;
END;

关于sql - 在 pl/sql 中插入触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31343651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com