暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T 创建临时表没数据

原创 章芋文 2019-09-30
1826

问题描述

通过create table AS query 语法创建临时表


create global TEMPORARY table global_temp_table_002 AS SELECT COL_6 FROM  t_test;


创建成功,t_test的COL_6 中有数据,但新表查询为空;

专家解答

【原因】


全局临时表,支持事务级别临时表和会话级别临时表。


ON COMMIT PRESERVE ROWS:定义会话级别临时表,当该会话结束时,临时表的数据将随着会话的结束而删除,但表结构仍然存在。


ON COMMIT DELETE ROWS:定义事务级别临时表,当事务结束,临时表的数据将随着事务结束而删除,表结构仍然存在。


如果不指定ON COMMIT { DELETE | PRESERVE } ROWS子句,默认创建事务级别临时表。


此建表语句是事务级语句,执行结束默认提交,故数据被删除;


【解决】


create global TEMPORARY table global_temp_table_002 ON COMMIT PRESERVE ROWS  as SELECT COL_6 FROM  t_test;


添加参数后可查询到数据;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论