我想使用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,我愿意接受有效的替代解决方案。
答案 0 :(得分:3)
这里需要的是创建find
。
关注SEQUENCE
创建和使用文档here。
例如,您可以创建SEQUENCE
,如:
SEQUENCE
然后你可以这样做:
CREATE SEQUENCE mytable_sq
START WITH 1
INCREMENT BY 1
NOCACHE
NOCYCLE;