gpt4 book ai didi

sql - INSERT ALL INTO 和 Sequence.nextval 用于代理键

转载 作者:行者123 更新时间:2023-12-04 08:53:20 24 4
gpt4 key购买 nike

我正在尝试使用 INSERT ALL INTO 插入 40 行,但我不确定如何插入代理键。这是我所拥有的

BEGIN
INSERT ALL

INTO question(question_id)
VALUES (question_seq.nextval)
END

现在,如果我添加另一个 INTO VALUES,那么我会得到一个唯一的约束违规。
BEGIN
INSERT ALL

INTO question(question_id)
VALUES (question_seq.nextval)

INTO question(question_id)
VALUES (question_seq.nextval)
END

如何更新每个 INTO VALUES 的序列 nextval 值,以便我可以避免唯一约束违规?我认为 nextval 会自动更新自己。

更新 :我不知道这是否是处理此问题的最佳方法,但这是我想出的解决方案:

首先我创建了一个返回值的函数
然后我在 VALUES 子句的 id 字段中调用了该函数
create or replace
FUNCTION GET_QUESTION_ID RETURN NUMBER AS
num NUMBER;
BEGIN
SELECT UHCL_QUESTIONS_SEQ.nextval
INTO num
FROM dual;
return num;
END GET_QUESTION_ID;

INSERT ALL
INTO question(question_id)
VALUES (GET_QUESTION_ID())
INTO question(question_id)
VALUES (GET_QUESTION_ID())

最佳答案

由于具有 SQL Server 背景,我总是在表上创建一个触发器来基本上模拟 IDENTITY 功能。一旦触发器打开,SK 就像身份一样从序列中自动生成,您不必担心。

关于sql - INSERT ALL INTO 和 Sequence.nextval 用于代理键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8370283/

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