1 回答

TA貢獻1757條經驗 獲得超8個贊
sql.Identifier 僅適用于 SQL 對象,例如表/列名而不是類型: https ://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
嘗試:
input_string_tup = (('col1', 'int'), ('col2', 'varchar(2)'))
table_name = 'test_table'
create_table_str = sql.SQL("CREATE TABLE {} ({data})").format(
sql.SQL(table_name),
data=sql.SQL(", ").join(sql.Composed(sql.Identifier(i[0]) + sql.SQL(' ' + i[1]) for i in input_string_tup)))
print(create_table_str.as_string(con))
CREATE TABLE test_table ("col1" int, "col2" varchar(2))
cur.execute(create_table_str)
添加回答
舉報