↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

PostgreSQL 文档检索

PG 18 · 按类别浏览,或输入名称与关键词

常用条目12360
函数章节正文PG18F.32.3. 函数 pg_stat_statements_reset(userid Oid, dbid Oid, queryid bigint, minmax_only boolean) returns timestamp with time zone pg_stat_statements_reset 会丢弃到目前为止由 pg_stat_statements 收集、且与指定 …函数 函数章节正文PG18F.34.1. 函数 heap_force_kill(regclass, tid[]) returns void # heap_force_kill 在不检查元组的情况下,将“used”行指针标记为“dead”。该函数的预期用途是强制移除那些无法通过其他方式访问的元组。例如: test=> select * from t1 where ctid = '(0, 1)'; ERRO…函数 函数章节正文PG18F.36.1. 函数 pg_visibility_map(relation regclass, blkno bigint, all_visible OUT boolean, all_frozen OUT boolean) returns record # 返回给定关系中给定块在可见性映射中的 all-visible 位和 all-frozen 位。 pg_visibility(…函数 函数章节正文PG18F.38.2. 函数 postgres_fdw_get_connections( IN check_conn boolean DEFAULT false, OUT server_name text, OUT user_name text, OUT valid boolean, OUT used_in_xact boolean, OUT closed boolean, OUT r…函数 函数章节正文PG18E.6.3.4. 函数添加函数 casefold() 以允许更复杂的忽略大小写匹配(Jeff Davis)§ 这允许更准确的比较,即一个字符可以有多个大写或小写等价物,或者大写或小写转换会改变字符的数量。 允许在数组和复合类型上进行 MIN()/MAX() 聚合(Aleksander Alekseev, Marat Buharov)§ § 向 EXTRACT() 添加 WEEK…函数 函数章节正文PG1810.3. 函数函数调用所引用的具体函数按照下述过程确定。函数类型解析 从系统目录 pg_proc 中选取要考虑的函数。如果使用的是未带模式限定的函数名,则考虑当前搜索路径中可见且名称和参数个数匹配的函数(见第 5.10.3 节)。如果给出了限定名,则只考虑指定模式中的函数。 如果搜索路径中找到多个参数类型完全相同的函数,只考虑路径中最早出现的那一个。参数类型不同的函数则不受搜…函数 函数章节正文PG18F.48.3. 函数 unaccent() 函数会从给定字符串中移除重音符号(变音符号)。从本质上说,它是对 unaccent 这一类型词典的一个包装器,但也可以在常规文本检索环境之外使用。unaccent([dictionary regdictionary, ] string text) returns text 如果省略 dictionary 参数,则会使用与 unacce…函数 函数优化信息章节正文PG1836.11. 函数优化信息默认情况下,函数只是一个“黑盒”,数据库系统对其行为知之甚少。这意味着,使用该函数的查询可能无法达到本可实现的执行效率。我们可以提供额外的信息,帮助规划器优化函数调用。一些基本事实可以通过 CREATE FUNCTION 命令中的声明式注解来提供。其中最重要的是函数的易变性分类(IMMUTABLE、STABLE 或 VOLATILE);定义函数时应始终…函数优化信息 函数依赖章节正文PG1869.2.1. 函数依赖多元相关性可以通过一个非常简单的数据集来演示 — 一个包含两列的表,两列都含有相同的值:CREATE TABLE t (a INT, b INT); INSERT INTO t SELECT i % 100, i % 100 FROM generate_series(1, 10000) s(i); ANALYZE t; 如第 14.2 节所述,规划器可以…函数依赖 函数依赖章节正文PG1814.2.2.1. 函数依赖最简单的一类扩展统计信息跟踪函数依赖,这是数据库范式定义中使用的概念。如果知道列 a 的值就足以确定列 b 的值,也就是说,不存在两行具有相同的 a 值却拥有不同的 b 值,那么就称列 b 函数依赖于列 a。在完全规范化的数据库中,函数依赖应当只存在于主键和超键上。不过在实践中,很多数据集出于各种原因并未完全规范化,常见情形之一就是为了性能而有意进行…函数依赖 函数依赖章节正文PG18函数依赖只有当一个表的主键被包括在 GROUP BY 列表中时,PostgreSQL 才识别函数依赖(允许从 GROUP BY 中省略列)。SQL 标准指定了应该要识别的额外情况。函数依赖 函数依赖的限制章节正文PG1814.2.2.1.1. 函数依赖的限制当前只有在考虑简单等值条件(将列与常量值比较)和具有常量值的 IN 子句时,函数依赖才适用。不会使用它们来改进比较两个列或者比较列和表达式的等值条件的估计,也不会用它们来改进范围子句、LIKE 或者任何其他类型的条件。在利用函数依赖做估计时,规划器假定涉及列上的条件彼此兼容,因此是冗余的。如果它们并不兼容,正确估计本应为零行,但这种可能性不…函数依赖的限制 函数和操作符章节正文PG18F.20.3. 函数和操作符 isn 模块提供标准比较操作符,以及对所有这些数据类型的 B-树和 hash 索引支持。此外,它还提供了一些专用函数,如表 F.11 所示。在该表中,isn 表示该模块提供的任意一种数据类型。表 F.11. isn 函数 函数 描述 make_valid ( isn ) → isn 清除该值上的“校验位无效”标记。 is_valid ( isn )…函数和操作符 函数和操作符章节正文PG18F.35.2. 函数和操作符 pg_trgm 模块提供的函数列在表 F.26 中,操作符列在表 F.27 中。表 F.26. pg_trgm 函数 函数 描述 similarity ( text, text ) → real 返回一个数值,表示两个参数的相似程度。结果范围为 0 到 1:0 表示两个字符串完全不相似,1 表示两个字符串完全相同。 show_trgm ( text…函数和操作符 函数安全性章节正文PG1821.6. 函数安全性函数、触发器和行级安全策略允许用户把代码插入后端服务器,而其他用户可能会无意中执行这些代码。因此,这些机制使用户能够相对容易地对其他用户实施“特洛伊木马”攻击。最强的保护方式是严格控制谁能定义对象。如果这不可行,则应编写只引用拥有者可信的对象的查询,并从 search_path 中移除任何允许不受信任用户创建对象的模式。函数在后端服务器进程中运行,并具有数…函数安全性 函数易变性分类章节正文PG1836.7. 函数易变性分类每一个函数都有一个易变性分类,可能是 VOLATILE、STABLE 或者 IMMUTABLE。如果 CREATE FUNCTION 命令没有指定一个分类,则默认是 VOLATILE。易变性分类是给优化器的关于该函数行为的一种承诺:一个 VOLATILE 函数可以做任何事情,包括修改数据库。在使用相同的参数连续调用时,它能返回不同的结果。优化器不会对这…函数易变性分类 函数说明章节正文PG18F.50.2. 函数说明表 F.37 显示了该模块提供的函数。这些函数提供简单直接的 XML 解析和 XPath 查询功能。表 F.37. xml2 函数 函数 描述 xml_valid ( document text ) → boolean 解析给定文档,如果该文档是良构 XML,则返回 true。(注意:这是标准 PostgreSQL 函数 xml_is_well_form…函数说明 函数调用章节正文PG1854.2.5. 函数调用函数调用子协议允许客户端请求直接调用数据库 pg_proc 系统目录中的任意函数。客户端必须具有该函数的执行权限。注意 函数调用子协议是一个遗留的特性,在新代码里可能最好避免用它。类似的结果可以通过设置一个执行 SELECT function($1, ...) 的预备语句得到。这样函数调用周期就可以用 Bind/Execute 代替。函数调用周期由前端向…函数调用 函数调用章节正文PG184.2.6. 函数调用函数调用的语法是:函数名(可能带有模式名限定)后跟一组放在圆括号内的参数列表:function_name ([expression [, expression ... ]] ) 例如,下面会计算 2 的平方根:sqrt(2) 内置函数的列表在第 9 章中。其他函数可以由用户增加。当在某些用户不信任其他用户的数据库中发出查询时,在编写函数调用时应遵守第 10…函数调用 函数重载章节正文PG1836.6. 函数重载可以用同样的 SQL 名称定义多于一个函数,只要它们的参数不同即可。换句话说,函数名可以被重载。不管你是否使用它,这种能力都要求在某些用户不信任其他用户的数据库中调用函数时采取安全预防措施,见第 10.3 节。当一个查询被执行时,服务器将从数据类型和所提供的参数个数来决定要调用哪个函数。重载也可用来模拟具有可变参数个数(最大个数有限)的函数。在创建一个重载函…函数重载 分区剪枝章节正文PG185.12.4. 分区剪枝分区剪枝是一种提升声明式分区表性能的查询优化技术。例如:SET enable_partition_pruning = on; -- the default SELECT count(*) FROM measurement WHERE logdate >= DATE '2008-01-01'; 如果没有分区剪枝,上面的查询将会扫描 measurement …分区剪枝 分区和约束排除章节正文PG185.12.5. 分区和约束排除约束排除是一种与分区剪枝类似的查询优化技术。虽然它主要用于采用传统继承方法实现的分区,但也可以用于其他用途,包括声明式分区。约束排除以非常类似于分区剪枝的方式工作,不过它使用每个表的 CHECK 约束 — 这也是它得名的原因 — 而分区剪枝使用表的分区边界,分区边界仅存在于声明式分区的情况中。另一点不同之处是约束排除仅在规划时应用,在执行时不会尝试…分区和约束排除 分区维护章节正文PG185.12.2.2. 分区维护通常在初始定义分区表时建立的分区并非保持静态不变。移除存放旧数据的分区并且为新数据周期性地增加新分区的需求比比皆是。分区的最大好处之一就是可以通过操纵分区结构来近乎瞬时地执行这类让人头痛的任务,而不是物理地移动大量数据。移除旧数据最简单的选择是删除掉不再需要的分区:DROP TABLE measurement_y2006m02; 这可以非常快速地删除…分区维护 分区表章节正文PG1829.4.4. 分区表如果发布包含分区表,则发布参数 publish_via_partition_root 确定使用哪个行过滤器。如果 publish_via_partition_root 为 true,则使用根分区表的行过滤器。否则,如果 publish_via_partition_root 为 false(默认值),则使用各个分区的行过滤器。分区表 分块检索查询结果章节正文PG1832.6. 分块检索查询结果通常,libpq 会收集一条 SQL 命令的完整结果,并将其作为单个 PGresult 返回给应用程序。对于返回大量行的命令,这可能并不适用。对于这类情况,应用程序可以将 PQsendQuery 和 PQgetResult 用于单行模式或分块模式。在这些模式下,结果行会在从服务器收到时立即返回给应用程序;单行模式每次返回一行,分块模式则每次返回一组行…分块检索查询结果 分类词典章节正文PG1812.6.4. 分类词典一个分类词典(有时被简写成 TZ)是一个词的集合,其中包括了词与短语之间的联系,即广义词(BT)、狭义词(NT)、首选词、非首选词、相关词等。分类词典基本上会用一个首选词替换所有非首选词,并且也可以选择保留原始词用于索引。PostgreSQL 的分类词典的当前实现是同义词词典的一个扩展,并增加了短语支持。一个分类词典需要一个采用以下格式的配置文件:这是一…分类词典 分类词典示例章节正文PG1812.6.4.2. 分类词典示例考虑一个简单的天文分类词典 thesaurus_astro,其中包含一些天文单词组合:supernovae stars : sn crab nebulae : crab 下面我们创建一个词典,并把一些词元类型绑定到天文分类词典和英语词干分析器上:CREATE TEXT SEARCH DICTIONARY thesaurus_astro ( TEM…分类词典示例 分类词典配置章节正文PG1812.6.4.1. 分类词典配置要定义一个新的分类词典,可使用 thesaurus 模板。例如:CREATE TEXT SEARCH DICTIONARY thesaurus_simple ( TEMPLATE = thesaurus, DictFile = mythesaurus, Dictionary = pg_catalog.english_stem ); 这里:thes…分类词典配置 列列表章节正文PG1829.5. 列列表每个发布都可以选择指定每个表中的哪些列复制到订阅端。订阅端上的表必须至少具有所有已发布的列。如果未指定列列表,则会复制发布端上的所有列。有关语法的详细信息,见 CREATE PUBLICATION。选择哪些列可以基于行为或性能方面的考虑。然而,不要依赖此功能来实现安全性:恶意订阅端仍然可以获得未被明确发布的列中的数据。如果需要考虑安全性,应在发布端采取保护措施…列列表 列引用章节正文PG184.2.1. 列引用一个列可以以下面的形式被引用:correlation.columnname correlation 是一个表的名字(可能带有模式名限定),或者是在 FROM 子句中为某个表定义的别名。如果该列名在当前查询所用的所有表中都是唯一的,则关联名称和分隔用的句点都可以省略(另见第 7 章)。列引用 列标签章节正文PG187.3.2. 列标签选择列表中的项可以被赋予名字,以供后续处理使用,例如在 ORDER BY 子句中引用,或者供客户端应用显示。例如:SELECT a AS value, b + c AS sum FROM ... 如果没有使用 AS 指定输出列名,系统就会分配一个默认列名。对于简单的列引用,它就是被引用列的名字;对于函数调用,它就是函数的名字;对于复杂表达式,系统则会生成一个…列标签 列检查约束章节正文PG18列检查约束 SQL 标准规定,CHECK 列约束只能引用其所作用的列;只有 CHECK 表约束才能引用多列。PostgreSQL 并不强制这一限制;它对列检查约束和表检查约束一视同仁。列检查约束 创建 XML 值章节正文PG188.13.1. 创建 XML 值要从字符数据生成 xml 类型的值,可以使用函数 xmlparse:XMLPARSE ( { DOCUMENT | CONTENT } value) 示例:XMLPARSE (DOCUMENT '<?xml version="1.0"?><book><title>Manual</title><chapter>...</chapter></book…创建 XML 值 创建一个大对象章节正文PG1833.3.1. 创建一个大对象函数 Oid lo_create(PGconn *conn, Oid lobjId); 创建一个新的大对象。要分配的 OID 可以由 lobjId 指定;如果指定了它,而该 OID 已经被某个大对象使用,则会失败。如果 lobjId 是 InvalidOid(零),则 lo_create 会分配一个未使用的 OID。返回值是分配给新大对象的 OID…创建一个大对象 创建一个数据库集簇章节正文PG1818.2. 创建一个数据库集簇在做任何事情之前,必须先在磁盘上初始化一个数据库存储区域。我们把它称为数据库集簇。(SQL 标准使用术语目录集簇(catalog cluster)。)数据库集簇是由一个正在运行的数据库服务器实例管理的一组数据库。初始化之后,数据库集簇中会包含一个名为 postgres 的数据库,作为供工具、用户和第三方应用使用的默认数据库。数据库服务器本身并不要求…创建一个数据库集簇 创建一个新表章节正文PG182.3. 创建一个新表你可以通过指定表名以及各列的列名和类型来创建一个新表:CREATE TABLE weather ( city varchar(80), temp_lo int, -- 最低温度 temp_hi int, -- 最高温度 prcp real, -- 降水量 date date ); 你可以在 psql 中按这种换行格式输入该命令。psql 会识别出该命令在分…创建一个新表 创建事件触发器章节正文PG1838.1.7. 创建事件触发器事件触发器通过命令 CREATE EVENT TRIGGER 创建。为了创建事件触发器,必须先创建一个返回类型为 event_trigger 的特殊函数。该函数不需要(也不能)返回值;这个返回类型仅用于表明该函数要作为事件触发器被调用。如果为某个特定事件定义了多个事件触发器,它们将按触发器名称的字母顺序触发。触发器定义也可以指定一个 WHEN 条件…创建事件触发器 创建和维护消息目录章节正文PG1856.1.3. 创建和维护消息目录好,那么该如何创建一个“空白”消息目录呢?首先,进入包含你想翻译其消息的程序的目录。如果那里有一个 nls.mk 文件,就说明这个程序已经为翻译做好准备了。如果已经有一些 .po 文件,那么就说明已经有人做过部分翻译工作。这些文件命名为 language.po,其中 language 是 ISO 639-1 两字母语言代码(小写),例如法语对应…创建和维护消息目录 创建数据库章节正文PG1822.2. 创建数据库要创建数据库,PostgreSQL 服务器必须已经启动并正在运行(见第 18.3 节)。数据库用 SQL 命令 CREATE DATABASE 创建:CREATE DATABASE name; 其中 name 遵循 SQL 标识符的一般规则。当前角色会自动成为新数据库的拥有者。数据库拥有者有权在日后删除该数据库(这也会删除其中的全部对象,即使那些对象具有不…创建数据库 创建数据库章节正文PG181.3. 创建数据库检验你能否访问数据库服务器的第一步,就是试着创建一个数据库。一个正在运行的 PostgreSQL 服务器可以管理许多数据库。通常会为每个项目或每个用户使用一个独立的数据库。你的站点管理员可能已经为你创建了一个可用的数据库。如果是这样,你就可以省略这一步,直接跳到下一节。要从命令行创建一个新数据库(本例中命名为 mydb),请使用以下命令:$ createdb…创建数据库
更多结果

输入名称或关键词,从 PostgreSQL 手册与扩展目录中直接找到定义。

pg17: 限定版本 ex: 只搜扩展 ↑↓ 选择 ↵ 打开