创建序列这样即可: create sequence ECS.AR_TAX_HEADERS_S minvalue 1 maxvalue 2147483647 start with 1 increment by 1 cache 20 order; 调用如下: SELECT ECS.AR_TAX_LINES_S.NEXTVAL INTO NO FROM DUAL;
drop sequence seq_name 就可以删除名为seq_name的序列 序列与表无关,可在多个表中使用,但每个表中的号则会不连续。因为每个seq_name.nextval都要消耗一个值。dual是oracle中的哑元表,因oracle的select要有from语句(sqlserver则不需要),所以不需要从表或视图中取值的select 语句,就跟from dual。 例: select sysdate from dual
楼上的兄弟,谢谢你!可以查看DUAL这个表的结构吗?
该表就一个字段 desc dual 就可以看到该表的表结构了
其实并不是一定要用dual表,可以是任何一个表都可以进行取得下一个值或最新值,如果你一次取的只有一个值则只要对于表检索的时候条件保证是只有一条记录就可以搞定。 如:表a,字段:a1 ,存在值:1,2,3 select seq_no.next_val from a where a1 = 1
create sequence ECS.AR_TAX_HEADERS_S
minvalue 1
maxvalue 2147483647
start with 1
increment by 1
cache 20
order;
调用如下:
SELECT ECS.AR_TAX_LINES_S.NEXTVAL INTO NO FROM DUAL;
就可以删除名为seq_name的序列
序列与表无关,可在多个表中使用,但每个表中的号则会不连续。因为每个seq_name.nextval都要消耗一个值。dual是oracle中的哑元表,因oracle的select要有from语句(sqlserver则不需要),所以不需要从表或视图中取值的select 语句,就跟from dual。
例:
select sysdate from dual
desc dual 就可以看到该表的表结构了
如:表a,字段:a1 ,存在值:1,2,3
select seq_no.next_val from a where a1 = 1
就是:我将序列所产生的值做为
我一个表的主键值,但当我删除我表中的一条
记录的时候,所消耗的序列也会自动减1吗?如果不是,那序列总有用完的一天啊
,特别是几个表使用同一个序列的时候,不知道实际情况是怎么样的啊,谢谢!!