繁体   English   中英

从 Python 脚本调用 SQL 5.6 例程

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM