Oracle的字段自动增量没有Slick的触发器?

时间:2017-03-24 14:18:10

标签: oracle scala slick

我试图在ErrorTable中插入行,其中包含一些字段加上一个idError,它被认为是主键。我需要idError自动增加。但是有一个要求是我们不能使用触发器,因此使用O.AutoInc对我们不起作用。

我们还尝试使用序列使用普通sql。但是我们有两个blob字段会使查询太长(得到字符串文字太长的错误)。

有关如何解决此问题的任何想法?我也在考虑使用UUID。

注意:我们使用的是oracle-xe-11g

1 个答案:

答案 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上测试但应该在早期版本中使用。