Я получаю много предупреждений одного и того же типа -
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. Вот, в частности, один: "512121500B".
Вот моя функция Python, которая удаляет PremiseID:
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 - это строка, а не двойная. Что мне здесь не хватает?
Большое спасибо.
Изменить
После изменения моей процедуры удаления использовать 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