我们在Sybase中有序列吗?

时间:2014-10-10 14:16:05

标签: sequence sybase

我看到教程谈论带语法和示例的序列。

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc00801.1601/doc/html/saiq-create-sequence-statement.html

但是当我尝试通过Squirrel在Syabse中创建序列时,我得到以下错误。

Error: 'SEQUENCE' is not a recognized CREATE option.

SQLState:  ZZZZZ
ErrorCode: 155

然后我们如何在Sybase中创建自动增量唯一标识符。

我们如何在序列中使用身份。为什么序列在一个Sybase版本中可用而在另一个版本中不可用。

我使用以下依赖关系连接到sybase。

 <dependency>
    <groupId>com.sybase.jdbcx</groupId>
    <artifactId>jconn3</artifactId>
    <version>6.0</version>
</dependency>

3 个答案:

答案 0 :(得分:1)

在身份上增加一点是:

截断表并插入数据后,将获取标识的旧值,然后递增。

示例:

select * from test_tab
go

2 rows 
1 hello
2 world

Truncate the table test_tab
go


insert into test_tab (test_tab_name) values ('Hai') 
go
insert into test_tab (test_tab_name) values ('done') 
go
select * from test_tab
go

您将获得以下

3 hai
4 done

答案 1 :(得分:0)

Sybase ASE中不存在作为对象的序列(假设)。使用标识列完成等效功能。

create table test_tab (
    test_tab_id     int          identity,
    test_tab_name   varchar(30)  not null )
go

insert into test_tab (test_tab_name) values ('Hello') 
go
insert into test_tab (test_tab_name) values ('World') 
go
select * from test_tab
go

结果

  

(受影响的一行)

     

(受影响的一行)

     

test_tab_id test_tab_name

     
       1 Hello                                                        
       2 World                                                        
     

(受影响的2行)

答案 2 :(得分:0)

我们可以为每个组合分配序列

E.g。        1 ABC

   2 ABC

   3 ABC

   4 ABC

  1  KLO

  2  KLO

  3  KLO