gpt4 book ai didi

oracle - 在 INSERT 查询中使用主键的顺序值

转载 作者:行者123 更新时间:2023-12-02 11:38:43 27 4
gpt4 key购买 nike

如何为具有顺序主键的 Oracle 数据库编写插入查询,以便插入语句自动采用序列中的下一个数字?

INSERT INTO LD_USER_ROLE(USER_ROLE_ID,INS_USER,INS_DATE, USERNAME) 
VALUES (100, 'sp22',to_date('2003/05/03 21:02:44','yyyy/mm/dd hh24:mi:ss'),'JOHN BARRY', )

在上面的语句中,我已将“USER_ROLE_ID”键的值硬编码为 100,但我想按照第一段中的说明进行更改。

最佳答案

为什么不为您的序列创建一个触发器,如下所示:

顺序:

CREATE SEQUENCE LD_USER_ROLE_SEQ
INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE NOCACHE NOORDER;

触发器:

CREATE TRIGGER LD_USER_ROLE_INSERT BEFORE INSERT ON LD_USER_ROLE
REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW
BEGIN
SELECT LD_USER_ROLE_SEQ.NEXTVAL INTO :NEW.USER_ROLE_ID FROM DUAL;
END;

触发器将在每次插入时自动获取下一个值/id(如 mysql 中的 auto_increment)。

关于oracle - 在 INSERT 查询中使用主键的顺序值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11344690/

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