当前位置: 首页 > 面试题库 >

选择进入PostgreSQL中的临时表?

袁宜
2023-03-14
问题内容

如何在PostgreSQL中使用select into创建临时表。例如在SQL中Select * into temp_tab from source_tab;


问题答案:

您可以尝试使用“将 表另存为” 命令,如下所示:

CREATE TEMP TABLE mytable AS
SELECT * from source_tab;

从文档中:

该命令在功能上类似于SELECT INTO ,但是它是首选的,因为它不太可能与SELECT INTO语法的其他用法混淆。此外,CREATE
TABLE AS提供了SELECT INTO提供的功能的超集。

CREATE TABLE AS命令允许用户明确指定是否应包括OID。如果未明确指定OID的存在,则使用default_with_oids配置变量。



 类似资料:
  • 我想选择一组行并将它们返回给客户端,但我也想将结果集中的主键(整数id)插入到临时表中,以便在同一事务的稍后连接中使用。 这适用于同步,其中后续查询往往涉及对早期查询结果的联接。 最有效的方法是什么? 我不愿执行两次查询,尽管如果将其添加到查询缓存中可能会很快。另一种选择是将整个结果集存储到临时表中,然后从临时表中进行选择。这似乎也很浪费(我只需要临时表中的整数id。)如果有一个SELECT IN

  • 问题内容: 我用于创建临时表的语法如下: 我知道这意味着在每笔交易结束时,都会删除该表。我的问题是,如果同一会话上的两个或多个线程创建并将值插入到临时表中,它们将各自获取自己的实例,还是该临时实例在整个会话中共享?如果它是共享的,是否有一种方法可以使每个线程本地化? 感谢Netta 问题答案: 临时表对于同一会话中的所有操作都是可见的。因此,在删除存在的临时表之前(在您的情况下提交事务),您 无法

  • 问题内容: 我想根据或月份的月份选择行,如下所示: 但是我只在PostgreSQL中收到错误消息。 如何才能做到这一点? 问题答案: 您可以使用函数,如下所示: 您的问题来自PostgreSQL中没有诸如函数之类的事实。在此处查看在线文档,以了解可以得到什么。应该足够了。

  • 我有两个表A(id,col1,col2)和B(col3,col4,col5,col6) 这引发错误 为什么postgres不自动为列“id”生成值?如果我从表B中提供“id”,或者如果我插入单行(没有select)并为自动生成的列提供“default”关键字,查询就可以工作。 编辑:表创建查询

  • 问题内容: 我试图根据选择的结果创建一个新表。这在SQL Server上可以正常工作: 现在,我想用HSQLDB(2.2版)实现完全相同的功能。我尝试了几种形式,例如 所有这些变体都会导致某种形式的语法错误。如何使用HSQLDB从select创建表? 问题答案: 的手册中有一个例子为这样的: HSQLDB 需要 在select周围加上括号(与所有其他DBMS不同),并且还需要该子句

  • 问题内容: 通过在PG 9.1上使用libpq,我试图编写查询以从具有最高索引“ my_id”的行中获取值: 这给了我错误: 错误:WHERE子句中不允许聚合… 如何正确编写这样的查询? 问题答案: 如果您的目标是获取具有最高my_id值的行,则以下查询应达到相同的目标。