SQL学习中(一)序列
序列可以理解数值序列生成器,通俗的说是按照已经设定的规则自动产生数据的方案对象。--SQL SERVER不支持
个人认为序列类似于SQLSERVER中的identity(1,1),可以用于在表中添加数据时,能够自动在上一个记录的字段上自动加1等。
创建序列的语法:
CREATE SEQUENCE<序列名> AS <数据类型>
START WITH<起始值>
INCEREMENT BY<递增值>
[MAXVALUE <最大值>]
[MINVIEW<最小值>]
[[NO] CYCLE];
如果需要取序列中的值,则如下调用:
NEXT VALUE FOR <序列名>
在某些情况下,我们需要对序列进行重置,此时需要使用一下语句修改可选子句或重置序列计数:
ALERT SEQUENEC <序列名>
RESTART WITH <起始值>;--重置计数
如果需要删除序列,则:
DROP SQUENEC <序列名>;
注意:尽管序列作为数据库的一类特征性正在被越来越多的数据库产品所接受,但是这一现象应该被避免,因为序列属于非关系化的一种扩展。它的操作方式并不是基于集合的操作方式,而是更接近于序列文件或过程函数的使用方式。
例:
CREATE SEQUENCE USE_CMS
START WITH 1
INCREMENT BY 1
MAXVALUE 999999999
NO CYCLE;
SQL SERVER中的解决方式:
ALTER TABLE <表名> ADD <列名> <数据类型> identity(1,1)
例: ALTER TABLE Users ADD UserId int identity(1,1)