2 개의 테이블 TBL1 및 TBL2가 있습니다.파이썬을 사용하여 이전 데이터를 새 데이터로 바꾸기
TBL1
에는 2 열 id
, nSql
이 있습니다.
TBL2
은 3 열 date
, custId
, userId
입니다.
ID가 1에서 17 인 TBL1에 17 개의 행이 있습니다. 각 nSql에는 SQL 쿼리가 있습니다.
ID == 1 예를 들어 nSql
이다 :"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