华为云用户手册

  • server_version 参数说明:报告服务器版本号(字符串形式)。 该参数属于INTERNAL类型参数,为固定参数,用户无法修改此参数,只能查看。该参数继承自PostgreSQL内核,表示当前数据库内核兼容PostgreSQL对应的server_version版本,无实际含义,为保持北向对外工具接口的生态兼容性(工具连接时查询),保留该参数。该参数不推荐使用,如想查询服务器版本号,可通过函数opengauss_version()获取。 取值范围:字符串 默认值:9.2.4
  • transparent_encrypt_kms_url 参数说明:它存储的是透明加密的数据库密钥获取地址,内容要求不可出现RFC3986标准外的字符,最大长度2047字节。格式为“kms://协议@KMS主机名1;KMS主机名2:KMS端口号/kms”,例如kms://https@linux175:29800/。该参数当前版本只适用于DWS场景。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串 默认值:空
  • job_queue_processes 参数说明:表示系统可以并发执行的job数目。该参数为postmaster级别,通过gs_guc设置,需要重启gaussdb才能生效。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:0~1000 功能: 当job_queue_processes设置为0值,表示不启用定时任务功能,任何job都不会被执行(因为开启定时任务的功能会对系统的性能有影响,有些局点可能不需要定时任务的功能,可以通过设置为0不启用定时任务功能)。 当job_queue_processes为大于0时,表示启用定时任务功能且系统能够并发处理的最大任务数。 启用定时任务功能后,job_scheduler线程会在定时时间间隔轮询pg_job系统表,系统设置定时任务检查周期默认为1s。 由于并行运行的任务数太多会消耗更多的系统资源,因此需要设置系统并发处理的任务数,当前并发的任务数达到job_queue_processes时,且此时又有任务到期,那么这些任务本次得不到执行而延期到下一轮询周期。因此,建议用户需要根据每个任务的执行时长合理的设置任务的时间间隔(即submit接口中的interval参数),来避免由于任务执行时间太长而导致下个轮询周期无法正常执行。 注:如果同一时间内并行的job数很多,过小的参数值会导致job等待。而过大的参数值则消耗更多的系统资源,建议设置此参数为100,用户可以根据系统资源情况合理调整。 默认值:10
  • hll_default_expthresh(废弃) 参数说明:该参数可以用来设置从Explicit模式到Sparse模式的默认阈值大小。当前已经使用参数hll_default_log2explicit替代类似功能。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,-1~7。-1表示自动模式,0表示跳过Explicit模式,取1-7表示在基数到达2hll_default_expthresh时切换模式。 默认值:-1
  • hll_default_regwidth(废弃) 参数说明:该参数可以指定hll数据结构每个桶的位数,该值越大,hll所占内存越高。hll_default_regwidth和hll_default_log2m可以决定当前hll能够计算的最大distinct value。当前regwidth设为固定值,该参数不再使用。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,1~5。 默认值:5
  • enable_stmt_track 参数说明:控制是否启用Full /Slow SQL特性。 在x86架构集中式部署下,硬件配置规格为32核CPU/256GB内存,使用Benchmark SQL 5.0工具测试性能,开关此参数性能影响约1.2%。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on:表示开启Full /Slow SQL捕获 off:表示关闭Full /Slow SQL捕获 默认值:on
  • track_stmt_retention_time 参数说明:组合参数,控制全量/慢SQL记录的保留时间。以60秒为周期读取该参数,并执行清理超过保留时间的记录,仅sysadmin用户可以访问。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符型 该参数分为两部分,形式为'full sql retention time, slow sql retention time' full sql retention time为全量SQL保留时间,取值范围为0 ~ 86400 slow sql retention time为慢SQL的保留时间,取值范围为0 ~ 604800 默认值:3600,604800
  • enable_auto_clean_unique_sql 参数说明:当系统中产生的unique sql条目数量大于等于instr_unique_sql_count时,是否启用unique sql自动淘汰功能。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 默认值:off 由于快照有部分信息是来源于unique sql,所以开启自动淘汰的情况下,在生成wdr报告时,如果选择的起始快照和终止快照跨过了淘汰发生的时间,会导致无法生成wdr报告。
  • query_log_file(废弃) 参数说明:GUC参数enable_slow_query_log设置为ON,表示需要将慢查询记录写进日志文件中,query_log_file决定服务器慢查询日志文件的名称,仅sysadmin用户可以访问。通常日志文件名是按照strftime模式生成,因此可以用系统时间定义日志文件名,用%转义字符实现,在该版本中已废弃。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 建议使用%转义字符定义日志文件名称,否则难以对日志文件进行有效的管理。 取值范围:字符串 默认值:slow_query_log-%Y-%m-%d_%H%M%S.log
  • query_log_directory(废弃) 参数说明:enable_slow_query_log设置为on时,query_log_directory决定存放服务器慢查询日志文件的目录,仅sysadmin用户可以访问。它可以是绝对路径,或者是相对路径(相对于数据目录的路径),在该版本中已废弃。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 当配置文件中query_log_directory的值为非法路径时,会导致数据库实例无法重新启动。 合法路径:用户对此路径有读写权限 非法路径:用户对此路径无读写权限 取值范围:字符串 默认值:安装时指定。
  • track_stmt_parameter 参数说明:开启track_stmt_parameter后,在statement_history中记录的执行语句不再进行归一化操作,可以显示完整SQL语句信息,辅助DBA进行问题定位。其中对于简单查询,显示完整语句信息;对于PBE语句,显示完整语句信息的同时,追加每个变量数值信息,格式为“query string;parameters:$1=value1,$2=value2,...”。该参数提供目的是为用户呈现完整SQL信息,不受track_activity_query_size参数控制。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on:表示开启显示完整SQL语句信息的功能 off:表示关闭显示完整SQL语句信息的功能 默认值:off
  • asp_log_directory 参数说明:asp_flush_mode设置为all或者file时,asp_log_directory决定存放服务器asp日志文件的目录。它可以是绝对路径,或者是相对路径(相对于数据目录的路径),仅sysadmin用户可以访问。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 当配置文件中asp_log_directory的值为非法路径时,会导致数据库实例无法重新启动。 合法路径:用户对此路径有读写权限。 非法路径:用户对此路径无读写权限。 取值范围:字符串 默认值:安装时指定。
  • udf_memory_limit 参数说明:控制每个数据库节点执行UDF时可用的最大物理内存量。本参数当前版本不生效,请使用FencedUDFMemoryLimit和UDFWorkerMemHardLimit参数控制fenced udf worker虚存。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,200*1024~max_process_memory,单位为KB。 默认值:200MB
  • instr_unique_sql_count 参数说明:控制系统中unique sql信息实时收集功能。配置为0表示不启用unique sql信息收集功能。 该值由大变小将会清空系统中原有的数据重新统计(备机不支持此能力);从小变大不受影响。 当系统中产生的unique sql信息大于instr_unique_sql_count时,系统产生的unique sql信息不被统计。 在x86架构集中式部署下,硬件配置规格为32核CPU/256GB内存,使用Benchmark SQL 5.0工具测试性能,开关此参数性能影响约3%。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0~2147483647 默认值:200000
  • 示例 --创建一个普通表openGauss=# CREATE TABLE my_table (c1 int, c2 int);--创建增量物化视图openGauss=# CREATE INCREMENTAL MATERIALIZED VIEW my_imv AS SELECT * FROM my_table;--基表写入数据openGauss=# INSERT INTO my_table VALUES(1,1),(2,2);--对增量物化视图my_imv进行增量刷新openGauss=# REFRESH INCREMENTAL MATERIALIZED VIEW my_imv;
  • enable_instr_cpu_timer 参数说明:是否捕获sql执行的cpu时间消耗。 在x86架构集中式部署下,硬件配置规格为32核CPU/256GB内存,使用Benchmark SQL 5.0工具测试性能,开关此参数性能影响约3.5%。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on:表示捕获sql执行的cpu时间消耗。 off:表示不捕获sql执行的cpu时间消耗。 默认值:on
  • 功能描述 RELEASE SAVEPOINT删除一个当前事务先前定义的保存点。 把一个保存点删除就令其无法作为回滚点使用,除此之外它没有其它用户可见的行为。它并不能撤销在保存点建立起来之后执行的命令的影响。要撤销那些命令可以使用ROLLBACK TO SAVEPOINT 。在不再需要的时候删除一个保存点可以令系统在事务结束之前提前回收一些资源。 RELEASE SAVEPOINT也删除所有在指定的保存点建立之后的所有保存点。
  • 示例 --创建一个新表。openGauss=# CREATE TABLE tpcds.table1(a int);--开启事务。openGauss=# START TRANSACTION;--插入数据。openGauss=# INSERT INTO tpcds.table1 VALUES (3);--建立保存点。openGauss=# SAVEPOINT my_savepoint;--插入数据。openGauss=# INSERT INTO tpcds.table1 VALUES (4);--删除保存点。openGauss=# RELEASE SAVEPOINT my_savepoint;--提交事务。openGauss=# COMMIT;--查询表的内容,会同时看到3和4。openGauss=# SELECT * FROM tpcds.table1;--删除表。openGauss=# DROP TABLE tpcds.table1;
  • enable_gtt_concurrent_truncate 参数说明:是否支持全局临时表truncate table和DML的并发执行,以及全局临时表truncate table和truncate table的并发执行。 该参数SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on/true表示支持上述操作并发。 off/false表示不支持上述操作并发。 默认值:on
  • 参数说明 表1 冲突的锁模式 请求的锁模式/当前锁模式 AC CES S SHARE ROW SHARE ROW EXCLUSIVE SHARE UPDATE EXCLUSIVE SHARE SHARE ROW EXCLUSIVE EXCLUSIVE ACCESS EXCLUSIVE ACCESS SHARE - - - - - - - X ROW SHARE - - - - - - X X ROW EXCLUSIVE - - - - X X X X SHARE UPDATE EXCLUSIVE - - - X X X X X SHARE - - X X - X X X SHARE ROW EXCLUSIVE - - X X X X X X EXCLUSIVE - X X X X X X X ACCESS EXCLUSIVE X X X X X X X X LOCK的参数说明如下所示: name 要锁定的表的名称,可以有模式修饰。 LOCK TABLE命令中声明的表的顺序就是上锁的顺序。 取值范围:已存在的表名。 ONLY 如果指定ONLY,只有该表被锁定。如果没有声明,该表和他的所有子表将都被锁定。 ACCESS SHARE 只与ACCESS EXCLUSIVE冲突。 SELECT命令在被引用的表上请求一个这种锁。通常, 任何只读取表而不修改它的命令都请求这种锁模式。 ROW SHARE 与EXCLUSIVE和ACCESS EXCLUSIVE锁模式冲突。 SELECT FOR UPDATE和SELECT FOR SHARE命令会自动在目标表上请求ROW SHARE锁(且所有被引用但不是FOR SHARE/FOR UPDATE的其他表上,还会自动加上ACCESS SHARE锁)。 ROW EXCLUSIVE 与ROW SHARE锁相同,ROW EXCLUSIVE允许并发读取表,但是禁止修改表中数据。UPDATE,DELETE,INSERT命令会自动在目标表上请求这个锁(且所有被引用的其他表上还会自动加上的ACCESS SHARE锁)。通常情况下,所有会修改表数据的命令都会请求表的ROW EXCLUSIVE锁。 SHARE UPDATE EXCLUSIVE 这个模式保护一个表的模式不被并发修改,以及禁止在目标表上执行垃圾回收命令(VACUUM )。 VACUUM(不带FULL选项),ANALYZE,CREATE INDEX CONCURRENTLY命令会自动请求这样的锁。 SHARE SHARE锁允许并发的查询,但是禁止对表进行修改。 CREATE INDEX(不带CONCURRENTLY选项)语句会自动请求这种锁。 SHARE ROW EXCLUSIVE SHARE ROW EXCLUSIVE锁禁止对表进行任何的并发修改,而且是独占锁,因此一个会话中只能获取一次。 任何SQL语句都不会自动请求这个锁模式。 EXCLUSIVE EXCLUSIVE锁允许对目标表进行并发查询,但是禁止任何其他操作。 这个模式只允许并发加ACCESS SHARE锁,也就是说,只有对表的读动作可以和持有这个锁模式的事务并发执行。 任何SQL语句都不会在用户表上自动请求这个锁模式。然而在某些操作的时候,会在某些系统表上请求它。 ACCESS EXCLUSIVE 这个模式保证其所有者(事务)是可以访问该表的唯一事务。 ALTER TABLE,DROP TABLE,TRUNCATE,REINDEX命令会自动请求这种锁。 在LOCK TABLE命令没有明确声明需要的锁模式时,它是缺省锁模式。 NOWAIT 声明LOCK TABLE不去等待任何冲突的锁释放,如果无法立即获取该锁,该命令退出并且发出一个错误信息。 在不指定NOWAIT的情况下获取表级锁时,如果有其他互斥锁存在的话,则等待其他锁的释放。
  • 语法格式 LOCK [ TABLE ] {[ ONLY ] name [, ...]| {name [ * ]} [, ...]} [ IN {ACCESS SHARE | ROW SHARE | ROW EXCLUSIVE | SHARE UPDATE EXCLUSIVE | SHARE | SHARE ROW EXCLUSIVE | EXCLUSIVE | ACCESS EXCLUSIVE} MODE ] [ NOWAIT ];
  • 注意事项 LOCK TABLE只能在一个事务块的内部有用,因为锁在事务结束时就会被释放。出现在任意事务块外面的LOCK TABLE都会报错。 如果没有声明锁模式,缺省为最严格的模式ACCESS EXCLUSIVE。 LOCK TABLE ... IN ACCESS SHARE MODE需要在目标表上有SELECT权限。所有其他形式的LOCK需要UPDATE和/或DELETE权限。 没有UNLOCK TABLE命令,锁总是在事务结束时释放。 LOCK TABLE只处理表级的锁,因此那些带“ROW”字样的锁模式都是有歧义的。这些模式名称通常可理解为用户试图在一个被锁定的表中获取行级的锁。同样,ROW EXCLUSIVE模式也是一个可共享的表级锁。注意,只要是涉及到LOCK TABLE ,所有锁模式都有相同的语意,区别仅在于规则中锁与锁之间是否冲突,规则请参见表1。 如果没有打开xc_maintenance_mode参数,那么对系统表申请ACCESS EXCLUSIVE级别锁将报错。
  • 功能描述 LOCK TABLE获取表级锁。 GaussDB 在为一个引用了表的命令自动请求锁时,尽可能选择最小限制的锁模式。如果用户需要一种更为严格的锁模式,可以使用LOCK命令。例如,一个应用是在Read Committed隔离级别上运行事务,并且它需要保证表中的数据在事务的运行过程中不被修改。为实现这个目的,则可以在查询之前对表使用SHARE锁模式进行锁定。这样将防止数据不被并发修改,从而保证后续的查询可以读到已提交的持久化的数据。因为SHARE锁模式与任何写操作需要的ROW EXCLUSIVE模式冲突,并且LOCK TABLE name IN SHARE MODE语句将等到所有当前持有ROW EXCLUSIVE模式锁的事务提交或回滚后才能执行。因此,一旦获得该锁,就不会存在未提交的写操作,并且其他操作也只能等到该锁释放之后才能开始。
  • 注意事项 不能回滚到一个未定义的保存点,语法上会报错。 在保存点方面,游标有一些非事务性的行为。任何在保存点里打开的游标都会在回滚掉这个保存点之后关闭。如果一个前面打开了的游标在保存点里面,并且游标被一个FETCH命令影响,而这个保存点稍后回滚了,那么这个游标的位置仍然在FETCH让它指向的位置(也就是FETCH不会被回滚)。关闭一个游标的行为也不会被回滚给撤消掉。如果一个游标的操作导致事务回滚,那么这个游标就会置于不可执行状态,所以,尽管一个事务可以用ROLLBACK TO SAVEPOINT重新恢复,但是游标不能再使用了。 使用ROLLBACK TO SAVEPOINT回滚到一个保存点。使用RELEASE SAVEPOINT删除一个保存点,但是保留该保存点建立后执行的命令的效果。
  • 示例 --撤销 my_savepoint 建立之后执行的命令的影响。openGauss=# START TRANSACTION;openGauss=# SAVEPOINT my_savepoint;openGauss=# ROLLBACK TO SAVEPOINT my_savepoint;--游标位置不受保存点回滚的影响。openGauss=# DECLARE foo CURSOR FOR SELECT 1 UNION SELECT 2;openGauss=# SAVEPOINT foo;openGauss=# FETCH 1 FROM foo; ?column? ---------- 1openGauss=# ROLLBACK TO SAVEPOINT foo;openGauss=# FETCH 1 FROM foo; ?column? ---------- 2openGauss=# RELEASE SAVEPOINT my_savepoint;openGauss=# COMMIT;
  • 参数说明 INDEX 重新建立指定的索引。 INTERNAL TABLE 重建列存表的Desc表的索引,如果表有从属的"TOAST"表,则这个表也会重建索引。 TABLE 重新建立指定表的所有索引,如果表有从属的"TOAST"表,则这个表也会重建索引。如果表上有索引已经被alter unusable失效,则这个索引无法被重新创建。 DATABASE 重建当前数据库里的所有索引。 SYSTEM 在当前数据库上重建所有系统表上的索引。不会处理在用户表上的索引。 name 需要重建索引的索引、表、数据库的名称。表和索引可以有模式修饰。 REINDEX DATABASE和SYSTEM只能重建当前数据库的索引,所以name必须和当前数据库名称相同。 FORCE 无效选项,会被忽略。 partition_name 需要重建索引的分区的名称或者索引分区的名称。 取值范围: 如果前面是REINDEX INDEX,则这里应该指定索引分区的名称; 如果前面是REINDEX TABLE,则这里应该指定分区的名称; 如果前面是REINDEX INTERNAL TABLE,则这里应该指定列存分区表的分区的名称。 REINDEX DATABASE和SYSTEM这种形式的重建索引不能在事务块中执行。
  • 注意事项 使用ROLLBACK TO SAVEPOINT回滚到一个保存点。使用RELEASE SAVEPOINT删除一个保存点,但是保留该保存点建立后执行的命令的效果。 保存点只能在一个事务块里面建立。在一个事务里面可以定义多个保存点。 由于节点故障或者通信故障引起的节点线程或进程退出导致的报错,以及由于COPY FROM操作中源数据与目标表的表结构不一致导致的报错,均不能正常回滚到保存点之前,而是整个事务回滚。 SQL标准要求,使用savepoint建立一个同名保存点时,需要自动删除前面那个同名保存点。在 GaussDB数据库 里,我们将保留旧的保存点,但是在回滚或者释放的时候,只使用最近的那个。释放了新的保存点将导致旧的再次成为ROLLBACK TO SAVEPOINT和RELEASE SAVEPOINT可以访问的保存点。除此之外,SAVEPOINT是完全符合SQL标准的。
  • 示例 --创建一个新表。openGauss=# CREATE TABLE table1(a int);--开启事务。openGauss=# START TRANSACTION;--插入数据。openGauss=# INSERT INTO table1 VALUES (1);--建立保存点。openGauss=# SAVEPOINT my_savepoint;--插入数据。openGauss=# INSERT INTO table1 VALUES (2);--回滚保存点。openGauss=# ROLLBACK TO SAVEPOINT my_savepoint;--插入数据。openGauss=# INSERT INTO table1 VALUES (3);--提交事务。openGauss=# COMMIT;--查询表的内容,会同时看到1和3,不能看到2,因为2被回滚。openGauss=# SELECT * FROM table1;--删除表。openGauss=# DROP TABLE table1;--创建一个新表。openGauss=# CREATE TABLE table2(a int);--开启事务。openGauss=# START TRANSACTION;--插入数据。openGauss=# INSERT INTO table2 VALUES (3);--建立保存点。openGauss=# SAVEPOINT my_savepoint;--插入数据。openGauss=# INSERT INTO table2 VALUES (4);--回滚保存点。openGauss=# RELEASE SAVEPOINT my_savepoint;--提交事务。openGauss=# COMMIT;--查询表的内容,会同时看到3和4。openGauss=# SELECT * FROM table2;--删除表。openGauss=# DROP TABLE table2;
  • 语法格式 [ WITH [ RECURSIVE ] with_query [, ...] ]SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] { * | {expression [ [ AS ] output_name ]} [, ...] } INTO [ [ GLOBAL | LOCAL ] [ TEMPORARY | TEMP ] | UN LOG GED ] [ TABLE ] new_table [ FROM from_item [, ...] ] [ WHERE condition ] [ GROUP BY expression [, ...] ] [ HAVING condition [, ...] ] [ WINDOW {window_name AS ( window_definition )} [, ...] ] [ { UNION | INTERSECT | EXCEPT | MINUS } [ ALL | DISTINCT ] select ] [ ORDER BY {expression [ [ ASC | DESC | USING operator ] | nlssort_expression_clause ] [ NULLS { FIRST | LAST } ]} [, ...] ] [ LIMIT { count | ALL } ] [ OFFSET start [ ROW | ROWS ] ] [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ] [ {FOR { UPDATE | SHARE } [ OF table_name [, ...] ] [ NOWAIT |WAIT N]} [...] ];
  • 参数说明 new_table new_table指定新建表的名称。 UNLOGGED 指定表为非日志表。在非日志表中写入的数据不会被写入到预写日志中,这样就会比普通表快很多。但是,它也是不安全的,非日志表在冲突或异常关机后会被自动删截。非日志表中的内容也不会被复制到备用服务器中。在该类表中创建的索引也不会被自动记录。 使用场景:非日志表不能保证数据的安全性,用户应该在确保数据已经做好备份的前提下使用,例如系统升级时进行数据的备份。 故障处理:当异常关机等操作导致非日志表上的索引发生数据丢失时,用户应该对发生错误的索引进行重建。 GLOBAL | LOCAL 创建临时表时可以在TEMP或TEMPORARY前指定GLOBAL或LOCAL关键字。如果指定GLOBAL关键字,GaussDB会创建全局临时表,否则GaussDB会创建本地临时表。 TEMPORARY | TEMP 如果指定TEMP或TEMPORARY关键字,则创建的表为临时表。临时表分为全局临时表和本地临时表两种类型。创建临时表时如果指定GLOBAL关键字则为全局临时表,否则为本地临时表。 全局临时表的元数据对所有会话可见,会话结束后元数据继续存在。会话与会话之间的用户数据、索引和统计信息相互隔离,每个会话只能看到和更改自己提交的数据。全局临时表有两种模式:一种是基于会话级别的(ON COMMIT PRESERVE ROWS), 当会话结束时自动清空用户数据;一种是基于事务级别的(ON COMMIT DELETE ROWS), 当执行commit或rollback时自动清空用户数据。建表时如果没有指定ON COMMIT选项,则缺省为会话级别。与本地临时表不同,全局临时表建表时可以指定非pg_temp_开头的schema。 本地临时表只在当前会话可见,本会话结束后会自动删除。因此,在除当前会话连接的数据库节点故障时,仍然可以在当前会话上创建和使用临时表。由于临时表只在当前会话创建,对于涉及对临时表操作的DDL语句,会产生DDL失败的报错。因此,建议DDL语句中不要对临时表进行操作。TEMP和TEMPORARY等价。 本地临时表通过每个会话独立的以pg_temp开头的schema来保证只对当前会话可见,因此,不建议用户在日常操作中手动删除以pg_temp、pg_toast_temp开头的schema。 如果建表时不指定TEMPORARY/TEMP关键字,而指定表的schema为当前会话的pg_temp_开头的schema,则此表会被创建为临时表。 ALTER/DROP全局临时表和索引,如果其它会话正在使用它,禁止操作。 全局临时表的DDL只会影响当前会话的用户数据和索引。例如truncate、reindex、analyze只对当前会话有效。 SELECT INTO的其它参数可参考SELECT的参数说明。
共100000条