Не могу поместить название таблицы в запрос SQLalchemy в Python [Duplicate]MySql

Форум по Mysql
Ответить
Anonymous
 Не могу поместить название таблицы в запрос SQLalchemy в Python [Duplicate]

Сообщение Anonymous »

В Python я подключен к SQL -серверу с помощью двигателя, и я манипулировал данными SQL в Workbench. Теперь я хочу перенести манипуляции с данными в Python. Имена таблиц, которые я буду использовать, могут измениться, поэтому я хочу, чтобы имя таблицы в запросе было переменной. Однако, независимо от того, как я пытаюсь избежать этого, я не могу поместить имя таблицы в запрос. Вот мой код: < /p>
df.to_sql(name='chartfield_data', con=engine, if_exists='replace', index=False)
sql = text("""
ALTER TABLE :table ADD Account_Group_2 VARCHAR(20);
UPDATE :table SET Account_Group_2 =
(CASE WHEN LEFT(Account, 1) = 4 THEN 'Revenue'
WHEN LEFT (Account, 1) = 5 THEN 'Salary'
WHEN LEFT(Account, 1) = 6 THEN 'OTPS'
ELSE 'Transfer' END);
""")

sql_dict = {'table': 'chartfield_data'}

with engine.begin() as connection:
connection.execute(sql, sql_dict)
< /code>
Имя таблицы - chartfield_data. Когда я использую отдельные кавычки вокруг него в SQL_DICT, я получаю ошибку, в которой говорится, что имя таблицы в SQL -запросе нуждается в обратных приемах или само по себе, потому что он читает как строковое «chartfield_data», что неверно. Я пытаюсь удалить одиночные кавычки, как SO: < /p>
sql_dict = {'table': chartfield_data}
< /code>
Но это дает мне ошибку «chartfield_data не определяется», потому что он читает его как переменную.
Я попытался добавить обратные ножки к имени, как SO: < /p>
sql_dict = {'table': `chartfield_data`}
< /code>
Но это не работает с Python 3.x.
Я, наконец, пытался использовать repr (), например, так: < /p>
sql_dict = {'table': repr(chartfield_data)}
< /code>
Но это также бросил ошибку. Есть ли в любом случае я могу использовать имя таблицы в качестве переменной в запросе и передать его в запрос вне этого? Любая помощь будет очень оценена!

Подробнее здесь: https://stackoverflow.com/questions/797 ... -in-python
Ответить

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

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

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

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

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