SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.08.2014 01:07:18

ingfa
Участник
Зарегистрирован: 30.08.2014
Сообщений: 8

Вопрос по триггеру. Возможно ли это

Здравствуйте уважаемые форумчане.
Есть у меня поле в таблице в которое каждые 10 секунд пишутся данные о состоянии оборудования.
Все очень просто если это 1 то авария если 0 то все нормально.
А мне же необходимо в другую таблицу вывести запись о событии в виде произвольного текста, о времени неработоспособности оборудования.
Например
20 раз появилась 1 методом update а на 21 пришел 0
записать, что со стольки то, до стольки, не было ответа от оборудования такого то.

Вопрос в чем.
реально ли создать такой триггер, который будет считывать значение только одного поля в строке. И записывать время неработоспособности оборудования, а не все 20 update.

Если я не прав поправьте меня. Может это как то по другому решается, что бы не изобретать велосипед подскажите где взять информацию.

Отредактированно ingfa (30.08.2014 01:07:35)

Неактивен

 

#2 30.08.2014 19:26:38

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Вопрос по триггеру. Возможно ли это

Для решения вашей задачи логично раз в некоторое время запускать процедуру, которая будет составлять выжимку за отчетный период.

Неактивен

 

#3 30.08.2014 22:41:13

ingfa
Участник
Зарегистрирован: 30.08.2014
Сообщений: 8

Re: Вопрос по триггеру. Возможно ли это

Примерчиков нет?

Неактивен

 

#4 30.08.2014 22:44:37

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Вопрос по триггеру. Возможно ли это

А что именно нуждается в примере? Запрос, который выбирает значение или который пишет в другую таблицу? Если так, то приведите структуру Ваших таблиц, значения etc.

Что до самой процедуры, то можно по крону запускать (или по планировщику, если windows), или можно через events

Есть у меня поле в таблице в которое каждые 10 секунд пишутся данные о состоянии оборудования.

А почему бы в том же месте и не проверять и не делать соотв. действия?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 31.08.2014 00:15:34

ingfa
Участник
Зарегистрирован: 30.08.2014
Сообщений: 8

Re: Вопрос по триггеру. Возможно ли это

Структура таблиц простая
cursor.execute("create table IF NOT EXISTS stranichka_t13006 (nomer_potoka CHAR(50) NULL, snmp_sost CHAR(50) NULL, sostoyanie_potoka CHAR(50) NULL, snmp_avar CHAR(50) NULL,sostoyanie_avar CHAR(50) NULL DEFAULT 'Не определенное',chislo TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,nazvanie_potoka CHAR(50) NULL,cvet_teksta, vivod CHAR(50) NULL)")

nomer_potoka  это просто номер потока E1-1 например
snmp_sost это snmp команда (не используется)
sostoyanie_potoka это то что нужно, сюда приходят каждые 10 секунд данные и в зависимости от состояния этого поля, мне нужно формировать таблицу неработоспособности  E1-1 например и из этой таблицы уже  формировать сколько был неработоспособен канал.
snmp_avar  это snmp команда (не используется)
sostoyanie_avar из этого поля добавлять уже название аварии что произошла во вновь созданную таблицу.
chislo  ну это понятно что

А данные я добавляю с помощью команды
update изменяются только 3 поля
sostoyanie_potoka
sostoyanie_avar
chislo







deadka написал:

А что именно нуждается в примере? Запрос, который выбирает значение или который пишет в другую таблицу? Если так, то приведите структуру Ваших таблиц, значения etc.

Что до самой процедуры, то можно по крону запускать (или по планировщику, если windows), или можно через events

Есть у меня поле в таблице в которое каждые 10 секунд пишутся данные о состоянии оборудования.

А почему бы в том же месте и не проверять и не делать соотв. действия?

Неактивен

 

#6 31.08.2014 00:23:22

ingfa
Участник
Зарегистрирован: 30.08.2014
Сообщений: 8

Re: Вопрос по триггеру. Возможно ли это

Если по простому написать, что бы вас не запутывать.
Я не понимаю, как мне, при поступившей аварии в поля
sostoyanie_potoka
sostoyanie_avar
зафиксировать куда то, что они не работали.

Неактивен

 

#7 31.08.2014 01:45:17

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Вопрос по триггеру. Возможно ли это

Я не понимаю, как мне, при поступившей аварии в поля
sostoyanie_potoka
sostoyanie_avar
зафиксировать куда то, что они не работали.

Эмм. Вопрос сводится к тому - как вставить данные в таблицу?

А мне же необходимо в другую таблицу вывести запись о событии в виде произвольного текста, о времени неработоспособности оборудования.

Ну, значит в этой другой таблице должно быть поле типа datetime или timestamp - и туда нужно вставить текущее время, описание ошибки, причину аварии и прочее.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#8 31.08.2014 22:11:26

ingfa
Участник
Зарегистрирован: 30.08.2014
Сообщений: 8

Re: Вопрос по триггеру. Возможно ли это

но ведь данные появляются каждые 10 секунд а мне необходимо начало аварии и конец или вычислить между началом аварии и концом. Как это сделать?

Неактивен

 

#9 31.08.2014 22:13:19

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Вопрос по триггеру. Возможно ли это

Ну так смотрите в данные - если там сказано про аварию, то так и запишите..
Или формализуйте вопрос несколько точнее.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#10 31.08.2014 23:14:31

ingfa
Участник
Зарегистрирован: 30.08.2014
Сообщений: 8

Re: Вопрос по триггеру. Возможно ли это

Вот как могу попытаюсь объяснить.

Авария например была с 17-00 01.09.2014 по  17-01 01.09.2014

sostoyanie_potoka                    sostoyanie_avar                          chislo
        0                                     norma                                         16-59-50 01.09.2014
        1                                     avariya_electrop                          17-00-00 01.09.2014
        1                                      avariya_electrop                         17-00-10 01.09.2014
        1                                      avariya_electrop                         17-00-20 01.09.2014
        1                                      avariya_electrop                         17-00-30 01.09.2014
        1                                      avariya_electrop                         17-00-40 01.09.2014
        1                                      avariya_electrop                         17-00-50 01.09.2014
        0                                      norma                                        17-01-00 01.09.2014
В основной таблице  просто обновляются поля, мне необходимо записать это с отдельную таблицу в таком же виде как я расписал, это наверное делается триггером, как я понял. Из того, что получилось высчитать общее время неработоспособности оборудования.

Конкретно нужна такая запись.

avariya_electrop с 17-00-00 01.09.2014 по 17-01-00 01.09.2014

Неактивен

 

#11 31.08.2014 23:45:54

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Вопрос по триггеру. Возможно ли это

Приведите результат запроса show create table ВАША_ТАБЛИЦА
где колонки
sostoyanie_potoka                    sostoyanie_avar                          chislo

Хочу увидеть, как вы chislo храните - очень надеюсь, что datetime или timestamp.

Что касается алгоритма, как это можно сделать (сразу говорю - думаю, что не самый оптимальный, для нахождения оптимального надо поэксперементировать, как структуры таблицы пришлете попробую):

Получили Вы данные
Если norma, то все хорошо.
Исходим из того, что Вы получили avariya_electrop, то есть строку

1                                      avariya_electrop                         17-00-50 01.09.2014

Далее в цикле находим самую дальнюю запись, у которой avariya_electrop
т. е. сперва находим запросом
select * FROM mytable WHERE chislo < ТЕКУЩЕЕ_ЗНАЧЕНИЕ_Т_Е_17-00-50 01.09.2014 ORDER BY chislo DESC limit 1;
"следующую" запись по направлению против часовой стрелки.
Проверяете ее sostoyanie_avar, если оно снова avariya_electrop, то еще раз запускаете запрос, только там ТЕКУЩЕЕ_ЗНАЧЕНИЕ уже будет 17-00-40 01.09.2014
И так до упора, пока не находим первоначальное аварийное время - ну или первую запись в таблице.

Далее вставляете в отчетную таблицу запись с найденными временами - ну или обновляете.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#12 01.09.2014 17:36:29

ingfa
Участник
Зарегистрирован: 30.08.2014
Сообщений: 8

Re: Вопрос по триггеру. Возможно ли это

Дело в том что таблицы у меня создаются  в моделях django,  данные в базу данных пишутся из скрипта который опрашивает оборудование. и все что я написал про 0 и 1 это не совсем точно. Сделал я это по причине облегчить понимание, себе и вам.
А вот правдивая история. Сначало создаю модели
Вот модели
class t13006 (models.Model):
    nomer_potoka = models.CharField(max_length=1000,blank=True, null=True)
    snmp_sost = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_potoka = models.CharField(max_length=1000,blank=True, null=True)
    snmp_avar = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_avar = models.CharField(max_length=1000,blank=True, null=True)
    chislo = models.DateTimeField(blank=True, null=True)
    nazvanie_potoka = models.CharField(max_length=1000,blank=True, null=True)
    cvet_teksta = models.CharField(max_length=1000, default='black',blank=True, null=True)
    vivod = models.CharField(max_length=1000,blank=True, null=True)

class t13009 (models.Model):
    nomer_potoka = models.CharField(max_length=1000,blank=True, null=True)
    snmp_sost = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_potoka = models.CharField(max_length=1000,blank=True, null=True)
    snmp_avar = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_avar = models.CharField(max_length=1000,blank=True, null=True)
    chislo = models.DateTimeField(blank=True, null=True)
    nazvanie_potoka = models.CharField(max_length=1000,blank=True, null=True)
    cvet_teksta = models.CharField(max_length=1000, default='black',blank=True, null=True)
    vivod = models.CharField(max_length=1000,blank=True, null=True)

class t13008 (models.Model):
    nomer_potoka = models.CharField(max_length=1000,blank=True, null=True)
    snmp_sost = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_potoka = models.CharField(max_length=1000,blank=True, null=True)
    snmp_avar = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_avar = models.CharField(max_length=1000,blank=True, null=True)
    chislo = models.DateTimeField(blank=True, null=True)
    nazvanie_potoka = models.CharField(max_length=1000,blank=True, null=True)
    cvet_teksta = models.CharField(max_length=1000, default='black',blank=True, null=True)
    vivod = models.CharField(max_length=1000,blank=True, null=True)

class t13012 (models.Model):
    nomer_potoka = models.CharField(max_length=1000,blank=True, null=True)
    snmp_sost = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_potoka = models.CharField(max_length=1000,blank=True, null=True)
    snmp_avar = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_avar = models.CharField(max_length=1000,blank=True, null=True)
    chislo = models.DateTimeField(blank=True, null=True)
    nazvanie_potoka = models.CharField(max_length=1000,blank=True, null=True)
    cvet_teksta = models.CharField(max_length=1000, default='black',blank=True, null=True)
    vivod = models.CharField(max_length=1000,blank=True, null=True)

class t13011 (models.Model):
    nomer_potoka = models.CharField(max_length=1000,blank=True, null=True)
    snmp_sost = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_potoka = models.CharField(max_length=1000,blank=True, null=True)
    snmp_avar = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_avar = models.CharField(max_length=1000,blank=True, null=True)
    chislo = models.DateTimeField(blank=True, null=True)
    nazvanie_potoka = models.CharField(max_length=1000,blank=True, null=True)
    cvet_teksta = models.CharField(max_length=1000, default='black',blank=True, null=True)
    vivod = models.CharField(max_length=1000,blank=True, null=True)

class t13010 (models.Model):
    nomer_potoka = models.CharField(max_length=1000,blank=True, null=True)
    snmp_sost = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_potoka = models.CharField(max_length=1000,blank=True, null=True)
    snmp_avar = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_avar = models.CharField(max_length=1000,blank=True, null=True)
    chislo = models.DateTimeField(blank=True, null=True)
    nazvanie_potoka = models.CharField(max_length=1000,blank=True, null=True)
    cvet_teksta = models.CharField(max_length=1000, default='black',blank=True, null=True)
    vivod = models.CharField(max_length=1000,blank=True, null=True)


class natex101 (models.Model):
    nomer_potoka = models.CharField(max_length=1000, blank=True, null=True)
    snmp_sost_pr = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_potoka_pr = models.CharField(max_length=1000,blank=True, null=True)
    snmp_sost_per = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_potoka_per = models.CharField(max_length=1000,blank=True, null=True)
    chislo = models.DateTimeField(blank=True, null=True)
    nazvanie_potoka = models.CharField(max_length=1000,blank=True, null=True)
    cvet_teksta = models.CharField(max_length=1000, default='black',blank=True, null=True)
    vivod = models.CharField(max_length=1000,blank=True, null=True)

class natex103 (models.Model):
    nomer_potoka = models.CharField(max_length=1000, blank=True, null=True)
    snmp_sost_pr = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_potoka_pr = models.CharField(max_length=1000,blank=True, null=True)
    snmp_sost_per = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_potoka_per = models.CharField(max_length=1000,blank=True, null=True)
    chislo = models.DateTimeField(blank=True, null=True)
    nazvanie_potoka = models.CharField(max_length=1000,blank=True, null=True)
    cvet_teksta = models.CharField(max_length=1000, default='black',blank=True, null=True)
    vivod = models.CharField(max_length=1000,blank=True, null=True)

class natex21 (models.Model):
    nomer_potoka = models.CharField(max_length=1000, blank=True, null=True)
    snmp_sost_pr = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_potoka_pr = models.CharField(max_length=1000,blank=True, null=True)
    snmp_sost_per = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_potoka_per = models.CharField(max_length=1000,blank=True, null=True)
    chislo = models.DateTimeField(blank=True, null=True)
    nazvanie_potoka = models.CharField(max_length=1000,blank=True, null=True)
    cvet_teksta = models.CharField(max_length=1000, default='black',blank=True, null=True)
    vivod = models.CharField(max_length=1000,blank=True, null=True)

class natex22 (models.Model):
    nomer_potoka = models.CharField(max_length=1000, blank=True, null=True)
    snmp_sost_pr = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_potoka_pr = models.CharField(max_length=1000,blank=True, null=True)
    snmp_sost_per = models.CharField(max_length=1000,blank=True, null=True)
    sostoyanie_potoka_per = models.CharField(max_length=1000,blank=True, null=True)
    chislo = models.DateTimeField(blank=True, null=True)
    nazvanie_potoka = models.CharField(max_length=1000,blank=True, null=True)
    cvet_teksta = models.CharField(max_length=1000, default='black',blank=True, null=True)
    vivod = models.CharField(max_length=1000,blank=True, null=True)
Потом заполняю таблицы данными, для того что бы можно было использовать команду update
Вот чем заполняю
там где 2 потока

from pysnmp.entity.rfc3413.oneliner import cmdgen
import MySQLdb
connection = MySQLdb.connect(host = '127.0.0.1' ,user='root', passwd='lthtdj2013', db='snmp', charset = 'utf8')
cursor = connection.cursor()
#cursor.execute("create table IF NOT EXISTS stranichka_t13006 (nomer_potoka CHAR(50) NULL, snmp_sost CHAR(50) NULL, sostoyanie_potoka CHAR(50) NULL, snmp_avar CHAR(50) NULL,sostoyanie_avar CHAR(50) NULL DEFAULT 'Не определенное',chislo TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,nazvanie_potoka CHAR(50) NULL,cvet_teksta, vivod CHAR(50) NULL)")
cursor.execute("""insert into stranichka_t13006 (nomer_potoka, snmp_sost, sostoyanie_potoka, snmp_avar,sostoyanie_avar, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-1","1.3.6.1.4.1.164.3.1.4.1.1.1.5.5.1","В работе", "1.3.6.1.4.1.164.3.1.4.1.1.1.6.5.1","Отсуствует","Без названия","black", "1")""")
cursor.execute("""insert into stranichka_t13006 (nomer_potoka, snmp_sost, sostoyanie_potoka, snmp_avar,sostoyanie_avar, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-2","1.3.6.1.4.1.164.3.1.4.1.1.1.5.5.2","В работе", "1.3.6.1.4.1.164.3.1.4.1.1.1.6.5.2","Отсуствует","Без названия","black", "1")""")
cursor.execute("commit")
Там где  16 потоков
#cursor.execute("create table IF NOT EXISTS stranichka_natex101 (nomer_potoka CHAR(50) NULL, snmp_sost_pr CHAR(50) NULL, sostoyanie_potoka_pr CHAR(50) NULL, snmp_sost_per CHAR(50) NULL,sostoyanie_potoka_per CHAR(50) NULL DEFAULT 'Не определенное',chislo TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,nazvanie_potoka CHAR(50) NULL,cvet_teksta, vivod CHAR(50) NULL)")
cursor.execute("""insert into stranichka_natex101 (nomer_potoka, snmp_sost_pr, sostoyanie_potoka_pr, snmp_sost_per,sostoyanie_potoka_per, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-1","1.3.6.1.2.1.10.18.6.1.10.1","В работе", "1.3.6.1.2.1.10.18.6.1.10.2","В работе","Без названия","black", "1")""")
cursor.execute("""insert into stranichka_natex101 (nomer_potoka, snmp_sost_pr, sostoyanie_potoka_pr, snmp_sost_per,sostoyanie_potoka_per, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-2","1.3.6.1.2.1.10.18.6.1.10.3","В работе", "1.3.6.1.2.1.10.18.6.1.10.4","В работе","Без названия","black", "1")""")
cursor.execute("""insert into stranichka_natex101 (nomer_potoka, snmp_sost_pr, sostoyanie_potoka_pr, snmp_sost_per,sostoyanie_potoka_per, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-3","1.3.6.1.2.1.10.18.6.1.10.5","В работе", "1.3.6.1.2.1.10.18.6.1.10.6","В работе","Без названия","black", "1")""")
cursor.execute("""insert into stranichka_natex101 (nomer_potoka, snmp_sost_pr, sostoyanie_potoka_pr, snmp_sost_per,sostoyanie_potoka_per, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-4","1.3.6.1.2.1.10.18.6.1.10.7","В работе", "1.3.6.1.2.1.10.18.6.1.10.8","В работе","Без названия","black", "1")""")
cursor.execute("""insert into stranichka_natex101 (nomer_potoka, snmp_sost_pr, sostoyanie_potoka_pr, snmp_sost_per,sostoyanie_potoka_per, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-5","1.3.6.1.2.1.10.18.6.1.10.9","В работе", "1.3.6.1.2.1.10.18.6.1.10.10","В работе","Без названия","black", "1")""")
cursor.execute("""insert into stranichka_natex101 (nomer_potoka, snmp_sost_pr, sostoyanie_potoka_pr, snmp_sost_per,sostoyanie_potoka_per, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-6","1.3.6.1.2.1.10.18.6.1.10.11","В работе", "1.3.6.1.2.1.10.18.6.1.10.12","В работе","Без названия","black", "1")""")
cursor.execute("""insert into stranichka_natex101 (nomer_potoka, snmp_sost_pr, sostoyanie_potoka_pr, snmp_sost_per,sostoyanie_potoka_per, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-7","1.3.6.1.2.1.10.18.6.1.10.13","В работе", "1.3.6.1.2.1.10.18.6.1.10.14","В работе","Без названия","black", "1")""")
cursor.execute("""insert into stranichka_natex101 (nomer_potoka, snmp_sost_pr, sostoyanie_potoka_pr, snmp_sost_per,sostoyanie_potoka_per, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-8","1.3.6.1.2.1.10.18.6.1.10.15","В работе", "1.3.6.1.2.1.10.18.6.1.10.16","В работе","Без названия","black", "1")""")
cursor.execute("""insert into stranichka_natex101 (nomer_potoka, snmp_sost_pr, sostoyanie_potoka_pr, snmp_sost_per,sostoyanie_potoka_per, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-9","1.3.6.1.2.1.10.18.6.1.10.17","В работе", "1.3.6.1.2.1.10.18.6.1.10.18","В работе","Без названия","black", "1")""")
cursor.execute("""insert into stranichka_natex101 (nomer_potoka, snmp_sost_pr, sostoyanie_potoka_pr, snmp_sost_per,sostoyanie_potoka_per, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-10","1.3.6.1.2.1.10.18.6.1.10.19","В работе", "1.3.6.1.2.1.10.18.6.1.10.20","В работе","Без названия","black", "1")""")
cursor.execute("""insert into stranichka_natex101 (nomer_potoka, snmp_sost_pr, sostoyanie_potoka_pr, snmp_sost_per,sostoyanie_potoka_per, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-11","1.3.6.1.2.1.10.18.6.1.10.21","В работе", "1.3.6.1.2.1.10.18.6.1.10.22","В работе","Без названия","black", "1")""")
cursor.execute("""insert into stranichka_natex101 (nomer_potoka, snmp_sost_pr, sostoyanie_potoka_pr, snmp_sost_per,sostoyanie_potoka_per, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-12","1.3.6.1.2.1.10.18.6.1.10.23","В работе", "1.3.6.1.2.1.10.18.6.1.10.24","В работе","Без названия","black", "1")""")
cursor.execute("""insert into stranichka_natex101 (nomer_potoka, snmp_sost_pr, sostoyanie_potoka_pr, snmp_sost_per,sostoyanie_potoka_per, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-13","1.3.6.1.2.1.10.18.6.1.10.25","В работе", "1.3.6.1.2.1.10.18.6.1.10.26","В работе","Без названия","black", "1")""")
cursor.execute("""insert into stranichka_natex101 (nomer_potoka, snmp_sost_pr, sostoyanie_potoka_pr, snmp_sost_per,sostoyanie_potoka_per, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-14","1.3.6.1.2.1.10.18.6.1.10.27","В работе", "1.3.6.1.2.1.10.18.6.1.10.28","В работе","Без названия","black", "1")""")
cursor.execute("""insert into stranichka_natex101 (nomer_potoka, snmp_sost_pr, sostoyanie_potoka_pr, snmp_sost_per,sostoyanie_potoka_per, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-15","1.3.6.1.2.1.10.18.6.1.10.29","В работе", "1.3.6.1.2.1.10.18.6.1.10.30","В работе","Без названия","black", "1")""")
cursor.execute("""insert into stranichka_natex101 (nomer_potoka, snmp_sost_pr, sostoyanie_potoka_pr, snmp_sost_per,sostoyanie_potoka_per, nazvanie_potoka, cvet_teksta, vivod) VALUE ("E1-16","1.3.6.1.2.1.10.18.6.1.10.31","В работе", "1.3.6.1.2.1.10.18.6.1.10.32","В работе","Без названия","black", "1")""")
cursor.execute("commit")

А дальше уже скриптом обновляю таблицы

cursor.execute("update {0} SET sostoyanie_avar = '{3}', chislo = CURRENT_TIMESTAMP where nomer_potoka = '{1}' and snmp_avar = '{2}';".format(b,c,name.prettyPrint(),avariya))
                cursor.execute("COMMIT;")
                print('%s = %s' % (name.prettyPrint(), val.prettyPrint()))

То есть количество строк у меня одно и тоже всегда.

Может я все не правильно делаю, и данные как то по другому нужно сохранять в базе данных? Подскажите если хоть что то поняли из моего дерьмо кода.

Неактивен

 

#13 01.09.2014 18:17:08

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Вопрос по триггеру. Возможно ли это

Давайте с другой стороны зайдём - мой алгоритм Вам понятен?, можете его реализовать? Если нет, то давайте разберемся - что именно в нем непонятно?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#14 01.09.2014 20:18:33

ingfa
Участник
Зарегистрирован: 30.08.2014
Сообщений: 8

Re: Вопрос по триггеру. Возможно ли это

Я уже подумываю, как в корне все переделать.
А как бы вы сделали запись данных в базу данных что бы бы не было таких проблем. ведь наверняка я изобретаю велосипед.
Подскажите лучше как все переделать?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson