Вы должны различать guish между двумя разными ситуациями. Если вы хотите использовать заглавные буквы в чувствительных к регистру идентификаторах, вы должны использовать двойные кавычки. Если вы используете только строчные буквы для идентификаторов, вы можете , но вам не нужно использовать двойные кавычки. Эксперты обычно рекомендуют избегать первого случая. Во втором случае кавычки, автоматически добавляемые psycopg2, не являются проблемой.
Обратите внимание, что public.abc
- это , а не идентификатор, это выражение, содержащее два идентификатора. Следовательно, вы должны использовать его следующим образом:
sql.SQL("select * from {}.{}").format(sql.Identifier(schema_name), sql.Identifier(table_name))
или это:
sql.SQL("select * from {}").format(sql.Identifier(schema_name, table_name))
как (согласно документации ):
Несколько объектов могут быть переданы объекту для представления квалифицированного имени, то есть разделенной точками последовательности идентификаторов.