PostgreSQL 文档检索
PG 18 · 按类别浏览,或输入名称与关键词
分类索引4025
ICU 比较级别23.2.3.1. ICU 比较级别
ICU 中两个字符串的比较(排序)由一个多级过程决定,其中各种文本特征被分组为“级别”。每个级别的处理由排序规则设置控制。级别越高,对文本特征的区分就越细。表 23.1显示了在给定级别判断相等性时,哪些文本特征差异会被认为是重要的。Unicode 字符U+2063 是不可见分隔符,如表中所示,在低于identic的所有比较级别都会被忽略。表…ICU 比较级别
ICU 的外部参考23.2.3.5. ICU 的外部参考本节(第 23.2.3 节)只是对 ICU 行为和语言标签的简要概述。有关技术细节、其他选项和新的行为,请参阅以下文档:Unicode 技术标准 #35 BCP 47 CLDR 存储库 https://unicode-org.github.io/icu/userguide/locale/ https://unicode-org.github…ICU 的外部参考
ICU 自定义排序规则23.2.3. ICU 自定义排序规则
ICU 允许通过把排序设置作为语言标签的一部分,定义新的排序规则,从而对排序规则行为进行广泛控制。这些设置可以修改排序顺序,以适应各种需求。例如:-- ignore differences in accents and case CREATE COLLATION ignore_accent_case (provider = icu, de…ICU 自定义排序规则
Ident 认证20.8. Ident 认证
ident 认证方法通过从一个 ident 服务器获得客户端的操作系统用户名并且用它作为被允许的数据库用户名(和可选的用户名映射)来工作。它只在 TCP/IP 连接上支持。注意 当为一个本地(非 TCP/IP)连接指定 ident 时,将实际使用 peer 认证(见第 20.9 节)。ident 支持下列配置选项:map # 允许在系统用户名和数据…Ident 认证
IF-THEN41.6.4.1. IF-THEN
IF boolean-expression THEN statements END IF;
IF-THEN语句是IF的最简单形式。如果条件为真,在THEN和END IF之间的语句将被执行。否则,将忽略它们。示例:IF v_user_id <> 0 THEN UPDATE users SET email = v_email WHERE user…IF-THEN
IF-THEN-ELSE41.6.4.2. IF-THEN-ELSE
IF boolean-expression THEN statements ELSE statements END IF;
IF-THEN-ELSE语句对IF-THEN进行了扩展,它让你能够指定一组在条件不为真时应该被执行的语句(注意这也包括条件为 NULL 的情况)。示例:IF parentid IS NULL OR parent…IF-THEN-ELSE
IF-THEN-ELSIF41.6.4.3. IF-THEN-ELSIF
IF boolean-expression THEN statements [ ELSIF boolean-expression THEN statements [ ELSIF boolean-expression THEN statements ... ] ] [ ELSE statements ] END IF;
有时会有多于…IF-THEN-ELSIF
ifdef、ifndef、elif、else 和 endif 指令34.9.3. ifdef、ifndef、elif、else 和 endif 指令可以使用以下指令对代码区段进行条件编译:EXEC SQL ifdef name; # 检查name;如果name已经通过EXEC SQL define name定义,则处理后续各行。 EXEC SQL ifndef name; # 检查name;如果name尚未通过EXEC SQL define …ifdef、ifndef、elif、else 和 endif 指令
ignore-cipher-failureF.26.3.8.12. ignore-cipher-failure
危险!通过完全忽略正在使用的 OpenSSL 密码算法所报告的失败,指示 pgcrypto 使用一种错误的解密算法,以匹配修复 CVE-2026-14663 之前的历史行为。此选项仅供需要恢复以下错误加密消息的用户使用:消息创建时,cipher-algo 在当时使用的 OpenSSL 配置下不可用。启用 ig…ignore-cipher-failure
IMPORT FOREIGN SCHEMAIMPORT FOREIGN SCHEMA IMPORT FOREIGN SCHEMA — 从一个外部服务器导入表定义大纲 IMPORT FOREIGN SCHEMA remote_schema [ { LIMIT TO | EXCEPT } ( table_name [, ...] ) ] FROM SERVER server_name INTO local_schema […IMPORT FOREIGN SCHEMA
IMPORT FOREIGN SCHEMA的 FDW 例程58.2.9. IMPORT FOREIGN SCHEMA的 FDW 例程
List * ImportForeignSchema(ImportForeignSchemaStmt *stmt, Oid serverOid);
取得外部表创建命令的列表。执行IMPORT FOREIGN SCHEMA时会调用此函数,传入该语句的语法解析树和要使用的外部服务器的 OID。它应返回一个 …IMPORT FOREIGN SCHEMA的 FDW 例程
IN9.24.2. IN
expression IN (subquery)
右手边是一个圆括号括起来的子查询,它必须恰好返回一列。左手边表达式会被求值,并与子查询结果逐行比较。如果找到任意相等的子查询行,那么IN的结果就是“真”。如果没有找到相等行,那么结果就是“假”(包括子查询不返回任何行的情况)。请注意,如果左侧表达式得到空值,或者右侧没有相等的值且至少有一行得到空值,则IN结…IN
IN9.25.1. IN
expression IN (value [, ...])
右侧是一个用圆括号括起来的表达式列表。如果左侧表达式的结果等于右侧任一表达式的结果,则结果为“真”。这等价于以下写法:expression = value1 OR expression = value2 OR ...
请注意如果左手边表达式得到空值,或者没有相等的右手边值并且至少有一个右手边的表达…IN
inet8.9.1. inet
inet 在一个字段中保存 IPv4 或 IPv6 主机地址,以及可选的子网信息。子网由主机地址中包含的网络地址位数(即“网络掩码”)表示。如果网络掩码为 32 且地址是 IPv4,那么该值表示的不是子网,而只是单个主机。在 IPv6 中,地址长度为 128 位,因此 128 位表示一个唯一的主机地址。请注意,如果你只想接受网络地址,应使用 cidr 类…inet
inet 与 cidr8.9.3. inet 与 cidr
inet 和 cidr 两种数据类型的本质区别在于:inet 接受网络掩码右侧仍含有非零位的值,而 cidr 不接受。例如,192.168.0.1/24 对 inet 是有效的,但对 cidr 无效。提示 如果你不喜欢 inet 或 cidr 值的输出格式,可以试试 host、text 和 abbrev 函数。inet 与 cidr
information_schema_catalog_name35.3. information_schema_catalog_name
information_schema_catalog_name 是一个表,它始终只包含一行一列,用于存放当前数据库的名称(按 SQL 术语称为当前目录)。表 35.1. information_schema_catalog_name 列 列类型 描述 catalog_name sql_identifie…information_schema_catalog_name
Informix 兼容的 SQLDA 描述符区域34.15.3. Informix 兼容的 SQLDA 描述符区域
Informix 兼容模式支持的结构体与第 34.7.2 节中所述的不同,如下所示:struct sqlvar_compat { short sqltype; int sqllen; char *sqldata; short *sqlind; char *sqlname; char *sqlformat; sh…Informix 兼容的 SQLDA 描述符区域
Informix兼容模式34.15. Informix兼容模式
ecpg可以运行在一种所谓的Informix 兼容模式中。如果这种模式被激活,它的行为就好像它是一个用于Informix E/SQL 的Informix预处理器。一般而言,这将允许你使用美元符号替代EXEC SQL来引入嵌入式 SQL 命令:$int j = 3; $CONNECT TO :dbname; $CREATE TABLE te…Informix兼容模式
initdbinitdb initdb — 创建一个新的PostgreSQL数据库集簇大纲 initdb [option...] [ --pgdata | -D ] directoryinitdb
INSERTINSERT INSERT — 在表中插入新行大纲 [ WITH [ RECURSIVE ] with_query [, ...] ] INSERT INTO table_name [ AS alias ] [ ( column_name [, ...] ) ] [ OVERRIDING { SYSTEM | USER } VALUE ] { DEFAULT VALUES | …INSERT
insert_username — 用于跟踪谁修改了表的函数F.41.3. insert_username — 用于跟踪谁修改了表的函数
insert_username() 是一个将当前用户名存入文本字段的触发器。它有助于跟踪表中某一特定行最后一次是由谁修改的。使用时,创建一个使用该函数的 BEFORE INSERT 和/或 UPDATE 触发器。指定一个触发器参数:要修改的文本列名。insert_username.example 中有…insert_username — 用于跟踪谁修改了表的函数
INSERT、UPDATE和DELETE规则39.4. INSERT、UPDATE和DELETE规则定义在INSERT、UPDATE和DELETE上的规则与前几节描述的视图规则有明显的不同。首先,它们的CREATE RULE命令允许更多:它们可以没有动作。 它们可以有多个动作。 它们可以是INSTEAD或ALSO(默认)。 伪关系NEW和OLD可以派上用场。 它们可以有规则条件。第二,它们不是就地修改查询树,而是创建零棵…INSERT、UPDATE和DELETE规则
intagg — 整数聚合器和枚举器F.18. intagg — 整数聚合器和枚举器
intagg 模块提供一个整数聚合器和一个枚举器。由于已经有内置函数提供了其能力的超集,所以 intagg 现已过时。不过,该模块仍作为这些内置函数的兼容性包装器提供。intagg — 整数聚合器和枚举器
intarray — 操作整数数组F.19. intarray — 操作整数数组
intarray模块提供了一些有用的函数和操作符,用于操作不含 NULL 的整数数组。它还支持使用其中某些操作符进行索引搜索。如果所提供的数组中包含任何 NULL 元素,所有这些操作都会抛出错误。这些操作中有许多只对一维数组才有意义。尽管它们也接受更高维度的输入数组,但数据会被视为按存储顺序排列的线性数组。该模块被认为是“受信任的…intarray — 操作整数数组
intarray 函数和操作符F.19.1. intarray 函数和操作符
intarray模块提供的函数列在表 F.8中,操作符列在表 F.9中。表 F.8. intarray 函数 函数 描述 示例 icount ( integer[] ) → integer 返回数组中的元素个数。 icount('{1,2,3}'::integer[]) → 3 sort ( integer[], dir text…intarray 函数和操作符
INTERSECT 子句INTERSECT 子句
INTERSECT子句的一般形式如下:select_statement INTERSECT [ ALL | DISTINCT ] select_statement
select_statement 是任何没有ORDER BY、LIMIT、FOR NO KEY UPDATE、FOR UPDATE、FOR SHARE以及FOR KEY SHARE子句的 S…INTERSECT 子句
interval34.4.4.2.2. interval
对interval类型的处理也类似于timestamp和date类型。不过,必须显式为一个interval类型分配内存。换句话说,该变量的内存空间必须在堆内存中分配,而不是在栈内存中分配。这里是一个例子程序:include <stdio.h> #include <stdlib.h> #include <pgtypes_interval.…interval
interval 类型34.6.5. interval 类型
C 中的 interval 类型允许程序处理 SQL interval 类型的数据。PostgreSQL服务器中的等效类型见第 8.5 节。下列函数可用于处理 interval 类型:PGTYPESinterval_new # 返回一个指向新分配 interval 变量的指针。 interval *PGTYPESinterval_new(…interval 类型
IS DOCUMENT9.15.2.1. IS DOCUMENT
xml IS DOCUMENT → boolean
如果参数 XML 值是一个正确的 XML 文档,则IS DOCUMENT返回真,如果不是则返回假(即它是一个内容片断),或者是参数为空时返回空。文档和内容片断之间的区别请见第 8.13 节。IS DOCUMENT
IS NOT DOCUMENT9.15.2.2. IS NOT DOCUMENT
xml IS NOT DOCUMENT → boolean
如果参数中的XML值是一个正确的XML文档,那么表达式IS NOT DOCUMENT返回假,否则返回真(也就是说它是一个内容片段),如果参数为空则返回空。IS NOT DOCUMENT
isn — 国际标准编号(ISBN、EAN、UPC 等)的数据类型F.20. isn — 国际标准编号(ISBN、EAN、UPC 等)的数据类型
isn模块为以下国际产品编号标准提供数据类型:EAN13、UPC、ISBN(图书)、ISMN(音乐)和 ISSN(连续出版物)。输入这些编号时,会依据一份硬编码的前缀列表进行校验;输出时,这份前缀列表也会用于给编号加上连字符。由于新的前缀会不时被分配,这份前缀列表可能已经过时。希望该模块未来版本能从…isn — 国际标准编号(ISBN、EAN、UPC 等)的数据类型
Ispell 词典12.6.5. Ispell 词典
Ispell词典模板支持形态词典,它可以把一个词的许多不同语言学形式正规化为同一个词位。例如,一个英语 Ispell 词典可以匹配搜索词 bank 的所有变格和变位形式,例如 banking、banked、banks、banks' 和 bank's。标准PostgreSQL发行版不包含任何Ispell配置文件。大量语言的词典可从Ispell获…Ispell 词典
JIT 提供者接口30.4.2.1. JIT 提供者接口
JIT 提供者通过动态装载指定名称的共享库来加载。系统使用通常的库搜索路径定位该库。为了提供所需的 JIT 提供者回调,并表明该库确实是一个 JIT 提供者,它需要提供一个名为 _PG_jit_provider_init 的 C 函数。系统会向该函数传入一个结构体,需要用各项动作对应的回调函数指针填充它:struct JitProvide…JIT 提供者接口
JIT加速的操作30.1.1. JIT加速的操作当前,PostgreSQL 的 JIT 实现支持对表达式求值和元组拆解进行加速。未来还可能加速其他若干操作。表达式求值用于计算 WHERE 子句、目标列表、聚合和投影。它可以通过为每种情况生成专用代码来加速。元组拆解是将磁盘上的元组(见第 66.6.1 节)转换为其内存表示的过程。它可以通过创建一个针对表布局和要提取的列数的专用函数来加速。JIT加速的操作
JOIN36.15.4. JOIN
如果给出 JOIN 子句,它指定该操作符的连接选择率估算函数。(注意,这里是函数名,而不是操作符名。)JOIN 子句只对返回 boolean 的二元操作符有意义。连接选择率估算器的作用,是针对当前操作符,猜测两张表中有多少比例的行对会满足如下形式的 WHERE 子句条件:table1.column1 OP table2.column2
与 RESTR…JOIN
JSON 函数和操作符9.16. JSON 函数和操作符本节描述:用于处理和创建 JSON 数据的函数和操作符 SQL/JSON 路径语言 SQL/JSON 查询函数为了在 SQL 环境中为 JSON 数据类型提供原生支持,PostgreSQL 实现了 SQL/JSON 数据模型。该模型由项序列组成。每个项可以保存 SQL 标量值,以及额外的 SQL/JSON null 值,还可以保存使用 JSON…JSON 函数和操作符
JSON 类型8.14. JSON 类型
JSON 数据类型用于存储 JSON(JavaScript Object Notation)数据,如 RFC 7159 所定义。这类数据也可以存储为 text,但 JSON 数据类型的优势在于会强制每个存储值都符合 JSON 规则。此外,对于存储在这些数据类型中的数据,还提供了各种 JSON 专用的函数和操作符;见第 9.16 节。PostgreSQ…JSON 类型
JSON 输入和输出语法8.14.1. JSON 输入和输出语法
JSON 数据类型的输入/输出语法遵循 RFC 7159。以下都是有效的 json(或 jsonb)表达式:-- 简单的标量/基本值 -- 基本值可以是数字、加引号的字符串、true、false 或 null SELECT '5'::json; -- 包含零个或多个元素的数组(元素不必是同一类型) SELECT '[1, 2, "foo…JSON 输入和输出语法
JSON_TABLE9.16.4. JSON_TABLE
JSON_TABLE 是一个 SQL/JSON 函数,用于查询 JSON 数据,并将结果表示为关系视图,从而可以像访问常规 SQL 表一样访问它。你可以在 SELECT、UPDATE 或 DELETE 的 FROM 子句中使用 JSON_TABLE,也可以在 MERGE 语句中将其用作数据源。JSON_TABLE 以 JSON 数据作为输入…JSON_TABLE
jsonb 下标8.14.5. jsonb 下标
jsonb 数据类型支持数组风格的下标表达式,用于提取和修改元素。嵌套值可以通过串接下标表达式来表示,其规则与 jsonb_set 函数中的 path 参数相同。如果一个 jsonb 值是数组,数值下标从零开始,负整数则从数组最后一个元素开始反向计数。不支持切片表达式。下标表达式的结果始终是 jsonb 数据类型。UPDATE 语句可以在 SE…jsonb 下标
更多结果
输入名称或关键词,从 PostgreSQL 手册与扩展目录中直接找到定义。
pg17: 限定版本 ex: 只搜扩展 ↑↓ 选择 ↵ 打开