如何在PostgreSQL中创建会话级表?

如何在PostgreSQL中创建会话级表?,postgresql,hibernate,Postgresql,Hibernate,我正在使用Spring、Hibernate和PostgreSQL 9.1开发一个应用程序。要求用户可以从浏览器上传批量数据 现在,每个用户上传的数据都非常粗糙,需要大量验证才能放入实际的事务表中。我希望在用户上传时创建一个临时表;在成功地将数据转储到此临时表中之后,我将调用一个过程来执行实际的工作,即验证临时表中的数据并将其从临时表中提取到事务表中。如果遇到anywhere错误,那么我会将日志转储到任何其他表中,以便用户可以从浏览器了解其上载的状态 在PostgreSQL中,我们是否有类似于临时

我正在使用Spring、Hibernate和PostgreSQL 9.1开发一个应用程序。要求用户可以从浏览器上传批量数据

现在,每个用户上传的数据都非常粗糙,需要大量验证才能放入实际的事务表中。我希望在用户上传时创建一个临时表;在成功地将数据转储到此临时表中之后,我将调用一个过程来执行实际的工作,即验证临时表中的数据并将其从临时表中提取到事务表中。如果遇到anywhere错误,那么我会将日志转储到任何其他表中,以便用户可以从浏览器了解其上载的状态

在PostgreSQL中,我们是否有类似于临时会话级表的内容?

来自:


这里的关键字是临时的,尽管表不一定是临时的。它可能是一个在插入之前截断的永久表。整个操作(插入和验证)必须包装在一个事务中。

为什么每个上传的文件都需要一个表?为什么不将所有文件存储在同一个表中呢?Echo JB Nizat…一个带有“file_id”列的表比为每个用户上传的文件不断创建临时表更有意义…存储过程很难处理动态临时表命名。但我假设每个用户上传的列数是动态的(因此需要动态列名,因此需要临时表)。这不是一项容易的任务,最好通过重新考虑用户请求来处理……这是一次数据加载/初始化还是一个正在进行的过程?如果这是一个持续的过程,我强烈建议重新访问用户请求。
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name ( [
  { column_name data_type [ COLLATE collation ] [ column_constraint [ ... ] ]
    | table_constraint
    | LIKE parent_table [ like_option ... ] }
    [, ... ]
] )
[ INHERITS ( parent_table [, ... ] ) ]
[ WITH ( storage_parameter [= value] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
[ TABLESPACE tablespace ]