You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Oracle触发器中使用多序列生成唯一标识的实现

Oracle触发器实现EQ表按设备类型自动生成带前缀的唯一eq_id

我帮你整理好了适配需求的触发器代码,完全符合你对AFM用户EQ设备表的要求:

CREATE OR REPLACE TRIGGER AFM.INV_SEQ_EQ_TOY_T
BEFORE INSERT ON AFM.EQ
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
WHEN (new.antenna_foot_number in (-1,1,2,3,4))
BEGIN
    IF :new.antenna_foot_number = -1 THEN
        -- 非天线设备:生成以'E'为前缀的唯一ID
        :new.eq_id := 'E'|| INV_SEQ_EQ_TOY.nextval;
    ELSE
        -- 天线设备(1-4号):生成以'A'为前缀的唯一ID
        :new.eq_id := 'A'|| INV_SEQ_EQ_ANTENNA_TOY.nextval;
    END IF;
END;
/

关键逻辑说明

  • 触发规则:这是行级前置触发器,仅在向AFM.EQ表插入数据时触发,且只处理antenna_foot_number为-1、1、2、3、4的记录
  • 非天线设备处理:当antenna_foot_number=-1时,调用INV_SEQ_EQ_TOY序列获取下一个值,拼接前缀'E'作为eq_id
  • 天线设备处理:当antenna_foot_number为1-4时,调用INV_SEQ_EQ_ANTENNA_TOY序列获取下一个值,拼接前缀'A'作为eq_id

内容的提问来源于stack exchange,提问作者comitatenses

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:37:01