MySQL сортировка данных с триггером в другие таблицы - решено - PullRequest
0 голосов
/ 28 марта 2020

У меня есть main_table: SELECT PORT_ID, DATA из main_table

мне нужен триггер запуска ПОСЛЕ INSERT main_table, который сортирует DATA по другим таблицам: INSERT INTO @PORT_ID (DATA) VALUE (@DATA)

возвращает сообщение об ошибке: Dynami c sql не допускается в сохраненной функции или триггере разрешен.

Есть идеи? Большое спасибо

Обходной путь

Я делаю простой обходной путь, 1, сохраняю запрос SQL в новую таблицу как целый текст. 2, запустить СОБЫТИЕ в секунду с сохраненным запросом ВЫПОЛНИТЬ

1 Ответ

0 голосов
/ 28 марта 2020

Это большой комментарий.

Простая процедура, которая выполняет вставку только как подготовленный оператор

CREATE DEFINER=`root`@`localhost` PROCEDURE `procedure_stmt`(IN test TEXT)
BEGIN
SET @sql = test;
 PREPARE stmt2 FROM @sql;
 EXECUTE stmt2;
END

И как триггер

BEGIN

 SET @sql = CONCAT('INSERT INTO ','gps_', NEW.PORT,' (DATA) VALUES (',NEW.DATTA,')'); 
CALL procedure_stmt(@sql);
 END$$
 DELIMITER ;

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...