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