Проблема с выборкой при вставке нескольких строк с помощью sqlalchemyPython

Программы на Python
Ответить
Anonymous
 Проблема с выборкой при вставке нескольких строк с помощью sqlalchemy

Сообщение Anonymous »

Добрый день!
Я использую psycopg и sqlalchemy для вставки и возврата запроса.
Я успешно вставил и вернулся, но окольным путем.
Я вставляю данные и возврат значений во временную таблицу, а затем выбор значений во временной таблице, как показано ниже.

Код: Выделить всё

from sqlalchemy.engine import create_engine
from sqlalchemy import text
from sqlalchemy import bindparam
import psycopg

def makePgEngine():
global pgEngine
pgEngine = create_engine("postgresql+psycopg://postgres:postgres@localhost:5412/postgres")

def insert_into_returning():
makePgEngine()
sql_text = "with r as (insert into public.numeric_data_source (x_field,y_field,z_field)values(:x_field,:y_field,:z_field) returning x_field, y_field, z_field) insert into temp_numeric_data_source (x_field, y_field, z_field)select x_field, y_field, z_field from r"
qry =text(sql_text).bindparams(
bindparam('x_field'),
bindparam('y_field'),
bindparam('z_field')
)
params=({'x_field':-99,'y_field':-98,'z_field':-97},
{'x_field':-98,'y_field':-97,'z_field':-96},
{'x_field':-97,'y_field':-96,'z_field':-95})
with pgEngine.connect() as con:
con.execute(text("truncate table public.numeric_data_source"))
con.execute(text("create temp table temp_numeric_data_source as select x_field, y_field, z_field from public.numeric_data_source"))
con.execute(qry, params)
data=con.execute(text("select * from temp_numeric_data_source"))
print(data.fetchall())
con.commit()
Можно ли как-нибудь обойти использование временной таблицы? Я хотел бы сохранить использование текстового объекта в sqlalchemy. Спасибо за вашу помощь.

Подробнее здесь: https://stackoverflow.com/questions/792 ... sqlalchemy
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»