簡體   English   中英

在 pypyodbc 中,如何查詢表的不同值、截斷舊表和 append 將不同值保存到空表

[英]In pypyodbc, How to query a table for its distinct values, truncate old table and append the distinct values to the empty table

我有一張桌子,無論出於何種原因,在進程運行后都有一些欺騙。 每一行都應該是一個不同的報告。 在執行 .fetchall 方法之后,我正在嘗試通過查看 cursor object 來做到這一點,並且它有點工作。 但它只插入一行。

import pypyodbc

conn_str = ('Driver={SQL Server};Server=*****************;Trusted_Connection=yes;')

con = pypyodbc.connect(conn_str)
cur = con.cursor()
cur.execute("SELECT DISTINCT TDate, Report, Records, Status from Elig_Own.DST_Report_Status_Test")
rows = cur.fetchall()
for row in rows:
        TDate = row[0]  # first item in the tuple iterable
        Report = row[1] # Second
        Records = row[2] # third
        Status = row[3]  # fourth
        cur.execute("truncate table Elig_own.DST_Report_Status_Test")
        cur.execute('''INSERT into Elig_Own.DST_Report_Status_Test (TDate, Report, Records, Status) 
                        VALUES (?, ?, ?, ?)''',(TDate, Report, Records, Status))      

con.commit()
con.close()

如果我只是在 for 循環中打印“行”,我會得到包含表所需的所有字段和值的元組列表,但我不確定如何將這些返回到空表中,所有行,而不是只有一個。 為什么我只有一個?

每次遍歷for循環時,您都在截斷(清空)表。 因此,當循環結束時,您的表將只包含您插入的最后一行。 在進入循環之前,您可能只想執行一次TRUNCATE TABLE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM