使用python将旧数据替换为新数据

使用python将旧数据替换为新数据,python,mysql,sql,database,Python,Mysql,Sql,Database,我有两张表TBL1和TBL2 TBL1有两列id,nSql TBL2有3列date,custId,userId 我在TBL1中有17行,id为1到17。每个nSql中都有一个SQL查询 例如,nSql id==1是:“选择日期,pId作为custId,tId作为TBL3中的用户id” id==2是:“选择日期,qId作为custId,rId作为TBL4中的用户id” nSql结果始终是相同的3列 下面的查询运行并将数据放入表TBL2。如果TBL2中已经有当天的数据,我希望查询用新数据替换数据。

我有两张表TBL1和TBL2

TBL1
有两列
id
nSql

TBL2
有3列
date
custId
userId

我在TBL1中有17行,id为1到17。每个nSql中都有一个SQL查询

例如,nSql

id==1是:
“选择日期,pId作为custId,tId作为TBL3中的用户id”

id==2是:
“选择日期,qId作为custId,rId作为TBL4中的用户id”

nSql结果始终是相同的3列

下面的查询运行并将数据放入表TBL2。如果TBL2中已经有当天的数据,我希望查询用新数据替换数据。 如果TBL2中没有数据,我希望以正常方式放置数据

例如,如果我在早上运行查询,如果我想在晚上再次运行查询,我希望使用新数据替换当天的旧数据,因为数据每天都会插入到TBL2中

另外,如果数据已经存在(如果由同事运行),我也不希望当天有重复的数据

我怎么做

多谢各位

(我是python新手,如果有人能分步解释并在代码中显示,我将不胜感激)

时间戳(使用
datetime
)插入表中的所有数据。在插入之前,从datetime的日期为今天的表中删除

对于MySQL,您可以使用函数
to_days()


插入新行时,
now()
将允许您使用与当前时间对应的日期时间值:

为什么人们不关注我是python新手。有人能输入密码吗。我想我们可以在“如果其他”语句中使用它。伪代码如下:if(curdate()==数据库上的日期)删除数据库数据并插入新数据。否则,请将新数据插入数据库。@Rio我的答案不是python。是MySQL。请参考以下链接:)
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()