[英]CALL a SQL 5.6 routine from a Python script
我正在尝试编写一个 Python 脚本,它将批量匿名存储在生产数据库中的用户。 这是使用以前已使用过多次并且工作正常的现有例程。
我的代码如下所示:
with open('users_to_delete.csv', newline='') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',', quotechar='|')
for row in csv_reader:
user_to_delete = row[0]
delete_query = """CALL anonymise_accounts(""" + user_to_delete + ');'
cursor.execute(delete_query, multi=True)
db_connection.commit()
运行时返回如下output:
CALL anonymise_accounts(5308561);
CALL anonymise_accounts(2558082);
但是,这些帐户不会匿名。
我会很感激我在这里可能出错的任何想法。
execute() 不是执行多条语句,你尝试 multi=False 并删除分号。
with open('users_to_delete.csv', newline='') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',', quotechar='|')
for row in csv_reader:
user_to_delete = row[0]
delete_query = """CALL anonymise_accounts(""" + user_to_delete + ')'
cursor.execute(delete_query, multi=False)
db_connection.commit()
with open('users_to_delete.csv', newline='') as csv_file:
csv_reader = csv.reader(csv_file, delimiter='\n', quotechar='|')
for row in csv_reader:
user_to_delete = row[0]
delete_query = """CALL rp_anonymise_ho(""" + user_to_delete + ')'
cursor.execute(delete_query)
print(cursor.fetchall())
确保 csv 中的数据以逗号分隔。 例如,只有一行没有逗号,代码如上所示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.