gpt4 book ai didi

sql - 安全检查 : How to restrict the # of rows affected in an Oracle Update/Delete query?

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

我的应用程序中有一个类似 ORM 的微型组件,用于处理基本更新/删除操作的查询生成,但我需要在查询级别建立一些安全性,因为主键是自动确定的(第二级肛门,如果你愿意的话)。

按照设计,每当我更新或删除一行时,它应该只影响 1 行。

因此,给定以下查询:

更新汽车 SET Color = 'Red' WHERE CarID = 5

我如何告诉 Oracle:“...这个查询应该影响 1 行。如果它影响超过 1 行,抛出一个大的毛茸茸的错误并且什么都不做。”

那样的话,假设某天出现了一个错误并执行了这个查询:

更新汽车 SET Color = 'Red'

...它只会爆炸。

最佳答案

你可能不希望 ROLLBACK 在那里,但如果有问题你通常想要回滚更新:

DECLARE
update_exception EXCEPTION;
BEGIN
UPDATE Cars
SET Color = 'Red'
WHERE CarID = 5;
--
IF SQL%ROWCOUNT > 1
THEN
RAISE update_exception;
END IF;
EXCEPTION
WHEN update_exception
THEN
ROLLBACK;
-- Do your error handling...
END;

关于sql - 安全检查 : How to restrict the # of rows affected in an Oracle Update/Delete query?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8096889/

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