Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail



Ответ
 
Опции темы
Старый 11.10.2017, 12:03   #1
IliaIT
Участник клуба
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 905
Репутация: 476
По умолчанию Тригеры mysql

есть программа опроса промышленных приборов. она складывает полученные значения в базу mysql 5,5. так как делалось все давно то много параметров хранится в одной базе и как следствие анализ данных по базе занимает много времени. Сейчас потребовался анализ по 4 параметрам прибора. для этого удобнее хранить эти данные в отдельной таблице, что значительно ускорит обработку. Хочу написать тригер в базу при добавлении этих параметров что бы они копировались и в другую базу. Тригер пишу в оболочке воркбенч 5.2.35. натолкнулся сначала на проблему не правильного формирования кода добавления тригера в базу (не может сам правильно писать запрос если название схемы только из цифр). хорошо прописал запрос руками, тригер добавился но не срабатывает, понять не могу почему и где ошибка. обе базы имеют один и тот же вид и тип переменных.

Код:

Table kod_2_17
==============
kod, unitnum, id_param, data, time, DT_st, val, ID_val
--------------
kod              int(11)
unitnum          int(4)
id_param         int(4)
data             date
time             time
DT_st            timestamp
val              float(12,2)
ID_val           bigint(20) unsigned PK

текст тригера в этой базе
Код:

-- Trigger DDL Statements
DELIMITER $$

USE `2017`$$

CREATE
DEFINER=`root`@`192.168.7.8`
TRIGGER `2017`.`kod_2_17`
AFTER INSERT ON `2017`.`kod_2_17`
FOR EACH ROW
BEGIN
-- копировение значений расхода в отдельную базу для оптимизации
-- левый расходомер 
    if new.kod=2 and new.unitnum=1 and new.id_param=17  then
        INSERT INTO `2017`.`kod_132_17` 
        (`kod`,`unitnum`,`id_param`,`data`,`time` ,`val`,`DT_st`) 
        VALUES  (132,NEW.`unitnum`,NEW.`id_param`,NEW.`data`,NEW.`time` ,NEW.`val`,NEW.`DT_st` );
    end if;
END$$

подскажите где ошибка? почему в базу kod_132_17 не добавляются значения при добавлении в `2017`.`kod_2_17`?

В данный момент спрашиваю 2 раза один и тот же параметр программой опроса и сохраняю в другую базу. но это не правильно и делает более долгим цикл опроса.
__________________
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
IliaIT вне форума   Ответить с цитированием
Старый 13.10.2017, 16:11   #2
IliaIT
Участник клуба
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 905
Репутация: 476
По умолчанию

В итоге не получилось сделать для схемы с цифоровым названием. Но так как база была myisam, то создал объединяющую таблицу megre, которая находилась в схеме с буквенным названием. к ней легко прикрутился тригер, но потребовалось дать разрешения на тригер как в самом тексте тригера, так и в правах пользователя, для использования тригеров в созданной схеме.
в самом тригере не было ошибок, разве что потом поменял DEFINER=`root`@`192.168.7.8` на нужного пользователя. конечно это может немного не верно, но работает...
Как запасной вариант остался написать процедуру сохранения и писать не напрямую в базу а с её помощью раскидывать по таблицам, то там править прогу бы пришлось...
всё тему можно закрывать.
__________________
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
IliaIT вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Windows+Apache+PHP+MySQL: не работает расширение MySQL. Пепел Феникса Софт 10 15.04.2012 14:10
есть адреси в mysql нужно поиска с AJAX for mysql orter PHP 1 24.09.2010 10:24
тригеры sergei64_89 SQL, базы данных 1 06.05.2008 13:14
для этой штуки нужны тригеры и курсоры. zinnyrik БД в Delphi 4 15.05.2007 14:47




05:32.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

купить трафик


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

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
лучший хостинг
Выбираем лучший хостинг: рейтинг ТОП 10