功能的返回值之间的差异

时间:2016-08-29 13:07:34

标签: postgresql

quote_ident(table_name::text)的结果是什么?如果我们在管道语句中传递它而不是表,有什么区别? 例如,

之间存在差异
CREATE TRIGGER audit_trigger_stm AFTER ' || stm_targets || ' ON ' || quote_ident(table_name::text) ...

和这个

CREATE TRIGGER audit_trigger_stm AFTER ' || stm_targets || ' ON ' || table_name ... 

1 个答案:

答案 0 :(得分:2)

不同之处在于,如果quote_ident包含空格,双引号或其他细节(或者是保留的SQL关键字),则不使用table_name组合语句将变为无效。

此外,如果quote_ident来自不受信任的来源,使用table_name可以使您免于SQL注入。