我正在try 使用以下所需格式的CTE运行查询:
SELECT * FROM (
VALUES
(1, 'A'),
(2, 'B')
) temp_table(column_a, column_b)
使用SQLalChemy,我希望动态填充该表中的数据(1、‘A’等).我try 了以下几种方法:
import sqlalchemy as sa
q = """
SELECT * FROM (
VALUES
(:column_a, :column_b)
) temp_table(column_a, column_b)
"""
params = [
{'column_a': 1, 'column_b': 'A'},
{'column_a': 2, 'column_b': 'B'}
]
conn.execute(sa.text(q), parameters=params)
但是,因为我提供了一个参数列表,所以在幕后使用execute_many
(据我所知),并最终运行两次查询,第一个查询是例如:
SELECT * FROM (
VALUES
(1, 'A')
) temp_table(column_a, column_b)
如何正确地将其参数化,以便一次性将所有元组插入到查询中?