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 ...
答案 0 :(得分:2)
不同之处在于,如果quote_ident
包含空格,双引号或其他细节(或者是保留的SQL关键字),则不使用table_name
组合语句将变为无效。
此外,如果quote_ident
来自不受信任的来源,使用table_name
可以使您免于SQL注入。