问题描述
我正在创建一个表,并为其设置一个自动生成的值,从1开始,但是我希望此值有一个限制,然后再从1开始。
我应该以什么方式定义该列,使其像这样?
CREATE TABLE MYTABLE
(
ID NUMBER GENERATED BY DEFAULT AS IDENTITY (START WITH 1),NAME VARCHAR(100)
);
解决方法
这里是一种选择:
CREATE TABLE MYTABLE (
ID NUMBER GENERATED BY DEFAULT AS IDENTITY (
START WITH 1
INCREMENT BY 1
MAXVALUE 10
CYCLE
NOCACHE
),NAME VARCHAR(100)
);
由于启用了CYCLE
选项,当序列达到MAXVALUE
中指定的值时,该序列将重置。我添加了NOCACHE
选项,尽管这里并没有严格要求(唯一的要求是CACHE
的值必须小于MAXVALUE
。)
这里是一个DB Fiddle demo,其中MAXVAL
设置为2
:您可以看到插入的第三行的内容为id
1
。