插入后如何在Oracle 12c中返回标识列(id)的值?似乎大多数方法都使用序列来获取插入项的ID。
只需使用 RETURNING 子句。
例如 -
RETURNING identity_id INTO variable_id;
测试用例 -
SQL> set serveroutput on
SQL> CREATE TABLE t
2 (ID NUMBER GENERATED ALWAYS AS IDENTITY, text VARCHAR2(50)
3 );
Table created.
SQL>
SQL> DECLARE
2 var_id NUMBER;
3 BEGIN
4 INSERT INTO t
5 (text
6 ) VALUES
7 ('test'
8 ) RETURNING ID INTO var_id;
9 DBMS_OUTPUT.PUT_LINE('ID returned is = '||var_id);
10 END;
11 /
ID returned is = 1
PL/SQL procedure successfully completed.
SQL>
SQL> select * from t;
ID TEXT
---------- --------------------------------------------
1 test
SQL>
问题内容: 在SQL Server中,是否可以使用存储过程在插入一些值的表中返回标识列的值?例如,如果我们在表中插入数据,则使用存储过程: 表TBL 用户ID整数,身份,自动递增 名称varchar 用户名varchar 密码varchar 因此,如果我运行存储过程插入一些值,例如: 我该如何返回此插入将发生的值。我需要其他一些操作的UserID值,有人可以解决吗? 问题答案:
问题内容: 我正在尝试在INSERT语句之后找回键值。示例:我有一个带有属性名称和ID的表。id是一个生成的值。 现在,我想在同一步骤中重新获得ID。这是怎么做的? 我们正在使用Microsoft SQL Server 2008。 问题答案: 无需单独的SELECT … 这也适用于非IDENTITY列(例如GUID)
我在postgres 12中有一个带有标识列(id)的表(表1)。表_1已经有数据,id列按顺序排列,如2、4、6、8、10等(偶数),最多1000个。现在从前端应用程序开始,我尝试输入数据,这些数据应该作为第1001条记录放在表中。我试图用以下两种方法创建序列,但没有成功。 它试图从1插入值,而不是从1001。对于奇数,将插入值,对于偶数,将引发以下错误错误:重复的键值违反了唯一约束pk_Tab
问题内容: 我有这个: 有没有一种方法可以获取更新的列表作为结果,而不是就地更新原始列表? 问题答案: 我得到的最短信息:
问题内容: 在SQL Server 2000或更高版本中,当使用如下语句时,是否有处理自动生成的主键(标识)列的方法? 我的目标是根本不使用列名。 问题答案: 默认情况下,如果你有一个标识列,你就 不会 需要在值部分指定它。如果您的表是: 然后,您可以执行以下操作: 这将为您自动生成ID,而您完全不必考虑它。如果您可以为ID列分配一个值。
如何将从上述插入语句填充的标识值()插入到表(另一个表)中 任何人都可以解释一下我如何为更大的记录集(数千条记录)实现它? 我们可以使用循环和?如果是,请解释我们如何做到这一点? 如果我从选择查询插入到#test中,会是什么情况? 插入到#test(b,c)中从…(数千条记录)中选择 我如何捕获标识值并将该值用于另一个(#sample) insert into #sample(e,f) selec