Я хочу удалить несколько строк из почти 500 таблиц в базе данных mysql с помощью python.Удаление данных из нескольких таблиц mysql с использованием python
Я знаю, что запрос должен быть чем-то вроде этого: DELETE FROM (имя таблицы)
[WHERE условия] [ORDER BY ...] [LIMIT строки]
, но я не уверен, что должен Я использую имя таблицы, когда я перебираю таблицы!
вот моя петля
from mysql.connector import (connection)
# call databasecnx = connection.MySQLConnection(user='user', password='PW',host='127.0.0.1', database= 'database')
cursor = cnx.cursor()
cursor.execute("SHOW TABLES LIKE 'options_20%'")
table_names = [tables for (tables,) in cursor]
for t in table_names:
cursor.execute("Delete table-refs WHERE Expiration = Datadate AND UnderlyingSymbol = 'SPY'")
cnx.commit()
я получил ошибку:
У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое ... и т. д.
Да, это была ошибка копирования. все еще ошибка в синтаксисе SQL :( – roby
Добавить пробел до и после * table * concatenation. Еще лучше использовать 'str.format' с обратными выводами MySQL для исключения специальных символов и пробелов:' '" DELETE '{}' WHERE Expiration = Datadate AND UnderlyingSymbol = 'SPY' ". Format (table)' ' – Parfait
все еще ошибка в синтаксисе. – roby