Postgresql,查询结果到新表

时间:2012-12-24 09:24:13

标签: postgresql

视窗/ NET / ODBC

我想通过一些方便的方式将查询结果提供给新表,我可以通过数据适配器查看但是我找不到办法来实现它。
没有太多的例子来满足初学者的水平。
不知道是否暂时,但在看到结果后不再需要表格,所以我可以“手动”删除它,也可以自动删除。

这是我尝试的:

  mCmd = New OdbcCommand("CREATE TEMP TABLE temp1 ON COMMIT DROP AS " & _
  "SELECT dtbl_id, name, mystr, myint, myouble FROM " & myTable & " " & _
  "WHERE myFlag='1' ORDER BY dtbl_id", mCon)

  n = mCmd.ExecuteNonQuery

此次运行没有错误,在'n'中我得到正确的匹配行数!!

但是用pgAdmin我没看到那些表没有?无论我是在开仓交易下还是在交易结束后查看 其次,我应该首先为temp1表定义列,还是可以根据查询结果自动生成(这很好!)。

请用最少的例子来说明基于上层代码做什么,以获得填满查询结果的新表。

1 个答案:

答案 0 :(得分:3)

使用CREATE TEMPORARY TABLE AS SELECT ...执行当前代码所做的相同操作的更简单方法。请参阅entry for CREATE TABLE AS in the manual

临时表在创建它们的会话(“连接”)之外可见,它们旨在作为会话将在以后的查询中使用的数据的临时位置。如果要从其他会话访问已创建的表,请不要使用TEMPORARY表。

对于生成的数据,您可能需要UNLOGGED(9.2或更新版本)且不需要持久,但必须对其他会话可见?

参见相关内容:Is there a way to access temporary tables of other sessions in PostgreSQL?