使用 psycopg2 删除名称中带有引号的 postgreSQL table

drop postgreSQL table with Quotation Marks in name using psycopg2

我在架构中有一个 table。

my_schema.my_table

在相同的架构中,我还有一个 table 名称相同但带有引号

my_schema."my_table"

如何使用 psycopg2 删除 my_schema."my_table"? (不冒掉落 my_schema.my_table 的风险)

我试过:

postgresConnection = psycopg2.connect(...)
from psycopg2 import sql 

cursor                = postgresConnection.cursor()
name_Table            = 'my_schema."my_table"'
cursor                = postgresConnection.cursor()
dropTableStmt   = "drop TABLE %s;"%name_Table;
cursor.execute(dropTableStmt)
postgresConnection.commit()
cursor.close();

但我明白了

SyntaxError: zero-length delimited identifier at or near """"
LINE 1: drop TABLE my_schema.""my_table"";

我也试过:

from psycopg2 import sql 

cursor                = postgresConnection.cursor()
name_Table            = 'my_schema.""my_table""'
cur = postgresConnection.cursor()
cur.execute(sql.SQL("DROP table {table}").format(table=sql.Identifier(name_Table)))
postgresConnection.commit()
cursor.close();

但后来我得到:

UndefinedTable: table "my_schema.""my_table""" does not exist

要转​​义对象名称中的双引号,请将双引号加倍:

DROP TABLE my_schema."""my_table""";