Sql 如何对每行使用oracle触发器而不使用
现在,我想检查更新后的表,看看它是否在attributeX中包含值'xyz',如果不包含,则删除该列中包含'abc'的所有元组。我不确定在甲骨文中到底该怎么做。任何帮助都将不胜感激。谢谢 这实际上是在扩大触发器的使用范围,使其超出其自然的有用范围。您正在将应用程序代码移动到一个对应用程序开发人员隐藏的位置,并且很可能会在代码中引入死锁。我强烈建议您使用触发器记录数据更改,也许还可以强制执行行更改约束,但除此之外几乎没有 如果您的应用程序是基于PL/SQL的,那么我将使用API子程序来执行更新,并在其中包含代码。您可能需要包含DBMS_锁代码来序列化删除Sql 如何对每行使用oracle触发器而不使用,sql,oracle,triggers,oracle-sqldeveloper,eventtrigger,Sql,Oracle,Triggers,Oracle Sqldeveloper,Eventtrigger,现在,我想检查更新后的表,看看它是否在attributeX中包含值'xyz',如果不包含,则删除该列中包含'abc'的所有元组。我不确定在甲骨文中到底该怎么做。任何帮助都将不胜感激。谢谢 这实际上是在扩大触发器的使用范围,使其超出其自然的有用范围。您正在将应用程序代码移动到一个对应用程序开发人员隐藏的位置,并且很可能会在代码中引入死锁。我强烈建议您使用触发器记录数据更改,也许还可以强制执行行更改约束,但除此之外几乎没有 如果您的应用程序是基于PL/SQL的,那么我将使用API子程序来执行更新,并
另一方面,考虑在应用层中的事务中包装这个逻辑并从那里运行它。
CREATE TRIGGER update
AFTER UPDATE OF pos ON table
IF (COUNT (SELECT * FROM table WHERE pos= 'xyz') = 0)
BEGIN
DELETE FROM table WHERE pos = 'abc';
END;