【发布时间】:2014-06-10 17:29:32
【问题描述】:
背景信息
我们有一些生成网络报告的 lua 代码。现在需要很长时间,因此为了简化一些逻辑,我正在考虑创建一个临时表,然后将该临时表与另一个查询的结果连接起来。
示例代码:
我在命令行上尝试了以下测试:
psql -U username -d databasename
DROP TABLE IF EXISTS TEMP1;
CREATE TABLE TEMP1 AS SELECT d_id, name as group, pname as param
FROM widgets
WHERE widget_id < 50;
SELECT count(*) from TEMP1;
\q
对 TEMP1 表的选择显示正确的结果。
问题:
问题 1 - 我如何编写代码以确保一个报告请求不会影响另一个报告请求?例如,如果 A 请求报告 A,而在它完成处理之前,B 请求报告 B... 报告 B 创建的 TEMP1 会破坏为报告 A 创建的临时表吗? 这是将所有内容都放入交易的好理由吗?
问题 2 - 运行上述我的小测试后,我退出 postgresql 命令行....然后再次登录。 TEMP1 还在。所以看起来我完成后必须清理临时表。 我找到了这篇文章: PostgreSQL temporary tables
这似乎表明在会话结束时会为您清理临时表......但这似乎对我不起作用。不知道我做错了什么。
谢谢。
【问题讨论】:
标签: sql postgresql lua temporary