--测试如下
SQL> DROP SEQUENCE SEQ_TEST;
序列已删除。
SQL> CREATE SEQUENCE SEQ_TEST
2 MINVALUE 1
3 MAXVALUE 99999999999
4 START WITH 1
5 INCREMENT BY 1
6 CACHE 20;
序列已创建。
SQL> CREATE TABLE tb(
2 TEST_ID NUMBER PRIMARY KEY,
3 TEST_NAME VARCHAR2(20)
4 );
CREATE TABLE tb(
*
第 1 行出现错误:
ORA-00955: 名称已由现有对象使用
SQL> drop table tb;
表已删除。
SQL> CREATE TABLE tb(
2 TEST_ID NUMBER PRIMARY KEY,
3 TEST_NAME VARCHAR2(20)
4 );
表已创建。
SQL> INSERT INTO tb VALUES(SEQ_TEST.NEXTVAL,'ABC');
已创建 1 行。
SQL> select * from tb;
TEST_ID TEST_NAME
---------- --------------------
2 ABC
SQL> spool off;
--创建表时加上 SEGMENT CREATION IMMEDIATE;
SQL> DROP SEQUENCE SEQ_TEST;
序列已删除。
SQL> CREATE SEQUENCE SEQ_TEST
2 MINVALUE 1
3 MAXVALUE 99999999999
4 START WITH 1
5 INCREMENT BY 1
6 CACHE 20;
序列已创建。
SQL> CREATE TABLE tb(
2 TEST_ID NUMBER PRIMARY KEY,
3 TEST_NAME VARCHAR2(20)
4 )
5 SEGMENT CREATION IMMEDIATE;
表已创建。
SQL> INSERT INTO tb VALUES(SEQ_TEST.NEXTVAL,'第一个序列')
2 /
已创建 1 行。
SQL> commit;
提交完成。
SQL> SELECT * FROM tb;
TEST_ID TEST_NAME
---------- --------------------
1 第一个序列