TBL1 と TBL2 の 2 つのテーブルがあります。
TBL1
の2 つの列id
がありますnSql
。、、 の
TBL2
3 つの列があります。
TBL1 に ID 1 から 17 の 17 行があります。各 nSql には SQL クエリがあります。 date
custId
userId
たとえば、次の 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 に挿入されるためです。
また、データが既に存在する場合 (同僚が実行している場合)、その日のデータを重複させたくないという注意事項もあります。
どうすればいいですか?
ありがとうございました。
(私はpythonが初めてです。誰かが手順を説明してコードに表示できるとありがたいです)
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()