quote_ident()

一个用于格式化标识符以供 SQL 字符串使用的函数

quote_ident() 是一个系统函数,用于格式化标识符以供使用在SQL语句字符串中。

quote_ident()PostgreSQL 7.1 中添加。

用法

quote_ident ( text ) → text

quote_ident() 通常与 quote_literal() 一起用于 PL/pgSQL 中,以使用变量生成动态查询。

更改历史记录

示例

基本用法

postgres=# SELECT quote_ident('Foo "Bar"');
  quote_ident  
---------------
 "Foo ""Bar"""
(1 row)

实际用例

postgres=# CREATE TABLE "FOO" (id SERIAL);
CREATE TABLE

postgres=# SELECT pg_get_serial_sequence(quote_ident('FOO'), 'id');
 pg_get_serial_sequence 
------------------------
 public."FOO_id_seq"
(1 row)

PL/pgSQL 中的用法

postgres=# CREATE OR REPLACE FUNCTION dyntest (
               tablename TEXT,
               colname TEXT
             )
             RETURNS INT
             LANGUAGE plpgsql STABLE
           AS $$
             DECLARE
               intval INT;
             BEGIN
               EXECUTE 'SELECT ' || quote_ident(colname) ||
                         'FROM ' || quote_ident(tablename) ||
                        'LIMIT 1'
                  INTO intval;
               RETURN intval;
             END;
           $$;

postgres=# INSERT INTO "FOO" values (1);
INSERT 0 1

postgres=# SELECT dyntest('FOO', 'ID');
 dyntest 
---------
       1
(1 row)

分类

字符串操作系统函数

另请参阅

quote_literal()quote_nullable()parse_ident()

反馈

提交任何关于 "quote_ident()" 的评论、建议或更正 此处