簡體   English   中英

使用Oracle SQL插入數字ID遞增的行(例如rownum)?

[英]Insert row with increasing numerical ID (e.g. rownum) using Oracle SQL?

我想使用Oracle SQL將新行插入到一個表中,其中一個字段僅需要是唯一的,例如,簡單地是rownum值。 但是,此語句不起作用:

insert into MYTABLE ( ID_, INDEX_, TYPE_, SOMEVALUE_  ) values ( "FOOBAR", rownum, 1, 999 );

這將導致錯誤消息:

00976. 00000 -  "Specified pseudocolumn or operator not allowed here."
*Cause:    LEVEL, PRIOR, ROWNUM, CONNECT_BY_ROOT, CONNECT_BY_ISLEAF or
           CONNECT_BY_ISCYCLE was specified at an illegal location.

如果無法使用rownum,我願意尋求一種有效的替代解決方案。

您這里需要創建一個SEQUENCE

此處遵循SEQUENCE創建和使用文檔。

例如,您可以像這樣創建SEQUENCE

CREATE SEQUENCE mytable_sq
 START WITH     1
 INCREMENT BY   1
 NOCACHE
 NOCYCLE;

然后,您可以執行以下操作:

insert into MYTABLE ( ID_, INDEX_, TYPE_, SOMEVALUE_  ) values ( "FOOBAR", mytable_sq.nextval, 1, 999 );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM