我有2個表TBL1和TBL2。使用python替換舊數據與新數據
TBL1
有2列id
,nSql
。
TBL2
有3列date
,custId
,userId
。
我在TBL1中有17行,ID爲1到17.每個nSql都有一個SQL查詢。
例如nSql對於
ID == 1是:"select date, pId as custId, tId as userId from TBL3"
ID == 2是:"select date, qId as custId, rId as userId from TBL4"
...
nSql結果總是相同的3列。
下面的查詢運行並將數據放入TBL2表中。如果當天TBL2中已經有數據,我希望查詢用新數據替換數據。 如果TBL2中沒有數據,我想以正常方式放入數據。例如,如果我在早上運行查詢,並且如果我想在晚上再次運行該查詢,那麼我希望新數據替換當天的舊數據,因爲每天都會將數據插入到TBL2中。
這也是預防措施,如果數據已經存在(如果由同事運行),我不希望那天的重複數據。
我該怎麼辦?
謝謝。
(我是新來的蟒蛇,我將不勝感激,如果有人可以在步驟展示和講解代碼)
import MySQLdb
# Open connection
con = MySQLdb.Connection(host="localhost", user="root", passwd="root", db="test")
# create a cursor object
cur = con.cursor()
selectStatement = ("select nSql from TBL1")
cur.execute(selectStatement)
res = cur.fetchall()
for outerrow in res:
nSql = outerrow[0]
cur.execute(nSql)
reslt = cur.fetchall()
for row in reslt:
date = row[0]
custId = row[1]
userId = row[2]
insertStatement = ("insert into TBL2(date, custId, userId) values ('%s', %d, %d)" % (date, custId, userId))
cur.execute(insertStatement)
con.commit()
爲什麼人們不遵循[PEP-8](http://www.python.org/dev/peps/pep-0008/) – pradyunsg