Ну в принципе и не на Python, важен принцип. Что мне нужно? Если UPDATE завершился ошибкой (данные не обновлены т.к. их нет), тогда INSERT. Вообще в MYSQL есть специальная команда — REPLACE, у которой синтаксис такой-же как у INSERT, за исключением того, что если такая запись уже есть, то она просто измениться. Одно НО. Таблица обязательно должна содержать колонки с UNIQUE. А если их нет, и добавить нельзя? Тогда к сожалению придется «отлавливать» результат выполнения UPDATE — а именно количество изменившихся записей. Если 0 — считаем что такой записи вообще нет, и вставляем. На Python нечто подобное реализовать можно вот так:
		
		
			
			
			
			
				
					
				|  | sql="update device_status set param_value=0,stamp=now() where param_name='Uptime' and device_id="+str(device_id);     func.putlog("---обновляю статус свича в биллинге ")      cursor2 = connb2.cursor()  func.putlog("----SQL:"+sql)      try:   cursor2.execute(sql);   connb2.commit();   print (format(cursor2.rowcount))   if format(cursor2.rowcount)=="0":     func.putlog("---- новый свич, добавляем данные в таблицу..");     sql="INSERT into device_status (record_id,device_id,port_id,param_name,param_value,stamp) values (null,"+str(device_id)+",null,'Uptime',UNIX_TIMESTAMP(),now())";     cursor2.execute(sql);     connb2.commit();       sql="INSERT into device_status (record_id,device_id,port_id,param_name,param_value,stamp) values (null,"+str(device_id)+",null,'State',2,now())";     cursor2.execute(sql);     connb2.commit(); |