临时表是一种辅助工具,能够提高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);
?