同じ種類の警告がたくさん表示されます-
Warning: Truncated incorrect DOUBLE value: '512121500B'
-しかし、その理由はわかりません。
MySQLテーブルdr_snapshotは次のようになります。
PremiseID char(10) Primary Key
cycle SMALLINT(6)
last_read DATETIME
reading INTEGER
DeviceID INTEGER
PremiseIDで多くの行を削除したい。特にここに1つあります:「512121500B」。
PremiseIDで削除するPython関数は次のとおりです。
def delDrSnapRow(premiseID, db):
sql_cmd = " ".join([
"delete ",
"from dr_snapshot ",
"where PremiseID = " + str(premiseID) + " ; "])
del_cur = db.cursor()
rc = del_cur.execute(sql_cmd)
del_cur.close()
return rc
PremiseIDは文字列であり、doubleではありません。ここで何が欠けていますか?
どうもありがとう。
編集
try:..を使用するように削除手順を変更した後、警告が表示されません。警告表示が表示されていないため、警告が表示されていないと思います---print(e)
例外部分にあります。
どういうわけかエラーを削除したことを除いて、試してみるという結論が残っています。
def delDrSnapRow(premiseID, db):
sql_cmd = " ".join([
"delete ",
"from dr_snapshot ",
"where PremiseID = " + "'" + premiseID + "' ; "])
del_cur = db.cursor()
try:
rc = del_cur.execute(sql_cmd)
except MySQLdb.Error, e:
print "Error %d: %s" % (e.args[0], e.args[1])
except MySQLdb.Warning, e:
print(e)
rc = del_cur.execute(sql_cmd)
del_cur.close()
return rc