当前位置: 代码迷 >> SQL >> Teradata SQL可变临时表中没法使用递增字段
  详细解决方案

Teradata SQL可变临时表中没法使用递增字段

热度:304   发布时间:2016-05-05 13:46:47.0
Teradata SQL可变临时表中无法使用递增字段

临时表是一种辅助工具,能够提高SQL操作的性能。特别是针对下列情况的SQL操作:

1.不能使用规范化的表;

2.要求多条 SQL 语句完成。

因为有一个需求就是要更新生产系统上的数据,但是生产系统上的数据又要保证正常,5张表之间都有关联关系,因为不能操作生成系统的数据,我的构思是,当用户登录的时候,系统初始,创建5个可变可变临时表,并从生产环境把数据导入可变临时表,用户操作的只是可变临时表,当更新完成的时候,执行检查关系的sql,检查通过后写回生产库。

但是今天测试的时候,发现Teradata数据库可变临时表中无法创建递增字段,但是官方文档也没有说明,如果有知道的朋友可以告诉我,我写的sql如下:

CREATE VOLATILE MULTISET TABLE FXYC01 (ID INTEGER GENERATED BY DEFAULT AS IDENTITY(   START WITH 1 		INCREMENT BY 1 		MINVALUE 1 		MAXVALUE 99999999 		NO CYCLE),C1 INTEGER)PRIMARY INDEX(ID)ON COMMIT PRESERVE ROWS;

?

如果不使用可变临时表,则正常,相关sql如下:

CREATE MULTISET TABLE FXYC01 (ID INTEGER GENERATED BY DEFAULT AS IDENTITY(   START WITH 1 		INCREMENT BY 1 		MINVALUE 1 		MAXVALUE 99999999 		NO CYCLE),C1 INTEGER)PRIMARY INDEX(ID);

?