Postgresql 如何强制转换列名以防止SQL注入?

Postgresql 如何强制转换列名以防止SQL注入?,postgresql,stored-procedures,Postgresql,Stored Procedures,在PostgreSQL函数中定义EXECUTE时,我可以将表名强制转换为::regclass,以确保它们是有效的关系名。现在,我想将其扩展到列名,但我找不到合适的类型 我的代码: ... BEGIN EXECUTE ' UPDATE ' || tbl::regclass || ' SET ' || col || '=someVal WHERE idcol=id '; END; ... 在col之后放置什么以将其转换为列名 quote_ident(col)

在PostgreSQL函数中定义
EXECUTE
时,我可以将表名强制转换为
::regclass
,以确保它们是有效的关系名。现在,我想将其扩展到列名,但我找不到合适的类型

我的代码:

...
BEGIN
    EXECUTE '
    UPDATE ' || tbl::regclass || ' SET ' || col || '=someVal WHERE idcol=id
    ';
END;
...
col
之后放置什么以将其转换为列名

quote_ident(col)