diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create_table.sgml index c693c0ae6f..7c407d630b 100644 --- a/doc/src/sgml/ref/create_table.sgml +++ b/doc/src/sgml/ref/create_table.sgml @@ -1,5 +1,5 @@ @@ -826,24 +826,32 @@ CREATE TABLE distributors ( Temporary Tables - In addition to the local temporary table, SQL92 also defines a - CREATE GLOBAL TEMPORARY TABLE statement. - Global temporary tables are also visible to other sessions. + Although the syntax of CREATE TEMPORARY TABLE + resembles that of SQL92, the effect is not the same. In the standard, + temporary tables are associated with modules; a temporary table is created + just once and automatically exists (starting with empty contents) in every + session that uses the module. + PostgreSQL does not have modules, and + requires each session to issue its own CREATE TEMPORARY + TABLE command for each temporary table to be used. - - For temporary tables, there is an optional ON COMMIT clause: - -CREATE { GLOBAL | LOCAL } TEMPORARY TABLE table ( ... ) [ ON COMMIT { DELETE | PRESERVE } ROWS ] - + + + The spec-mandated behavior of temporary tables is widely ignored. + PostgreSQL's behavior on this point is similar + to that of several other RDBMSs. + + - The ON COMMIT clause specifies whether or not - the temporary table should be emptied of rows whenever - COMMIT is executed. If the ON - COMMIT clause is omitted, SQL92 specifies that the default is - ON COMMIT DELETE ROWS. However, the behavior of - PostgreSQL is always like ON - COMMIT PRESERVE ROWS. + + The optional ON COMMIT clause for temporary tables + also resembles SQL92, but has some differences. + If the ON COMMIT clause is omitted, SQL92 specifies that the + default behavior is ON COMMIT DELETE ROWS. However, the + default behavior in PostgreSQL is + ON COMMIT PRESERVE ROWS. The ON COMMIT + DROP option does not exist in SQL92 at all. @@ -854,7 +862,7 @@ CREATE { GLOBAL | LOCAL } TEMPORARY TABLE tableNULL constraint (actually a non-constraint) is a PostgreSQL extension to SQL92 that is included for compatibility with some - other RDBMS (and for symmetry with the NOT + other RDBMSs (and for symmetry with the NOT NULL constraint). Since it is the default for any column, its presence is simply noise.