[英]Oracle - where the orderly column ID e.g. ORDER BY 1 is allwed?
[英]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.