我试图在ErrorTable中插入行,其中包含一些字段加上一个idError,它被认为是主键。我需要idError自动增加。但是有一个要求是我们不能使用触发器,因此使用O.AutoInc对我们不起作用。
我们还尝试使用序列使用普通sql。但是我们有两个blob字段会使查询太长(得到字符串文字太长的错误)。
有关如何解决此问题的任何想法?我也在考虑使用UUID。
注意:我们使用的是oracle-xe-11g
答案 0 :(得分:2)
在11g中,您只能使用触发器实现自动递增标识符。因此,似乎您的要求排除了除SYS_GUID之外的任何内容。 Find out more
"它还代表另一个获取该值的查询"
不一定。如果您可以选择定义目标表,则可以为UUID列设置默认值,如下所示:
create table t23 (
id raw(16) default sys_guid() not null primary key
, col1 varchar2(10)
);
然后
SQL> insert into t23 (col1) values ('ABC');
1 row created.
SQL> select * from t23;
ID COL1
-------------------------------- -----------
7DD7216E731C126537615FE1244B4B50 ABC
SQL>
注意:在12C上测试但应该在早期版本中使用。