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

时间:2012-05-28 12:09:48

标签: postgresql hibernate

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

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

在PostgreSQL中我们有临时会话级表吗?

1 个答案:

答案 0 :(得分:1)

来自the 9.1 manual

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 ]

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