Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Teradata SQL中生成自动编号_Sql_Auto Increment_Teradata - Fatal编程技术网

如何在Teradata SQL中生成自动编号

如何在Teradata SQL中生成自动编号,sql,auto-increment,teradata,Sql,Auto Increment,Teradata,我想生成使用TD SQL的自动编号,例如: CREATE MULTISET TABLE TEST_TABLE ( AUTO_NUMBER INT, NAME VARCHAR(10) ) PRIMARY INDEX (AUTO_NUMBER); INSERT INTO TEST_TABLE VALUES('TOM'); INSERT INTO TEST_TABLE VALUES('JIM'); INSERT INTO TEST_TABLE VALUES('JAN'); SELECT *

我想生成使用TD SQL的自动编号,例如:

CREATE MULTISET TABLE TEST_TABLE
(
  AUTO_NUMBER INT,
  NAME VARCHAR(10)
)
PRIMARY INDEX (AUTO_NUMBER);

INSERT INTO TEST_TABLE
VALUES('TOM');
INSERT INTO TEST_TABLE
VALUES('JIM');
INSERT INTO TEST_TABLE
VALUES('JAN');

SELECT * FROM TEST_TABLE;
上述结果将是

1 TOM
2 JIM
3 JAN

使用以下语法创建列:

SEQ_NUM decimal(10,0) NOT NULL GENERATED ALWAYS AS IDENTITY
           (START WITH 1 
            INCREMENT BY 1 
            MINVALUE 1 
            MAXVALUE 2147483647 
            NO CYCLE)

通常表中有一列是唯一的

如果不想向表中添加额外的列,可以使用以下技术在结果集中添加列

从表T中选择(ORDER BY)上的秩(),T.*SEQ

它将为您提供如下输出:

1a xx yy 2b xx年
3 c xx yy

通过这种方式,您可以添加一个自动增量列:TERADATA SQL ASSISTENTHi Joe,谢谢,TERADATA论坛这是meDo的好地方您真的需要一个没有间隙的序列吗?1,2,3? 标识不能保证序列号,事实上,它不是单个序列,而是每个AMP/PE的多个序列。这对已经填充行的现有表有效吗?