簡體   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