【问题标题】:oracle trigger delete after insert插入后oracle触发删除
【发布时间】:2021-01-05 23:47:29
【问题描述】:

我有一张桌子“人”

id groupId occupation state
1  5       DIRECTOR   RETIREMENT
2  5       TEACHER    VACATION
3  4       DIRECTOR   ACTIVE

我需要一个触发器来删除新插入的行,如果它具有相同的 grupiId、相同的职业和 state ACTIVE 。 例如: 如果我插入一个 groupId 为 4 的行,函数 Teacher,无论在哪里 - 都可以。 如果我插入一个 groupId 为 4 的行,函数 Director,状态为 HOLIDAY - 没关系。 但是如果我插入一行,groupId 为 4,函数 Director,状态为 ACTIVE,插入后应该将其删除

【问题讨论】:

    标签: sql oracle triggers


    【解决方案1】:

    不要为此使用触发器。只需使用唯一约束或索引:

    alter table person add constraint unq_person_groupid_function
        unique (groupid, function);
    

    注意:function 不适合作为列名,因为它是 SQL 关键字。

    【讨论】:

    • 不,但如果这是您真正需要的,您可以模拟过滤索引。
    猜你喜欢
    • 2015-06-11
    • 2012-03-30
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    相关资源
    最近更新 更多