Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2017, 11:03   #1
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 979
По умолчанию Тригеры 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, 15:11   #2
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 979
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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