mysql - MySQL 使用触发器将数据排序到其他表 - 已解决
问题描述
我有 main_table: SELECT PORT_ID, DATA from main_table
我需要在插入主表之后运行触发器,它将数据排序到其他表:INSERT INTO @PORT_ID (DATA) VALUE (@DATA)
返回错误消息:存储函数中不允许使用动态 sql 或触发器已解析。
任何想法?非常感谢
解决方法
我做了一个简单的解决方法,1,将一个 SQL 查询作为一个完整的文本保存到新表中。2、每秒运行一个 EVENT 与 EXECUTE 保存的查询
解决方案
这对评论来说太大了。
一个简单的过程,仅将插入作为准备好的语句执行
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 ;
如果您发布了表格和数据,我会进一步测试它。
推荐阅读
- python - Beautifulsoup 干净的打印和换行符
- javascript - Google Analytics 事件未触发包含匹配类型
- sql - 是否可以简化此 SQL?
- android - 使用 xamarin Implimentation 在同一平台中的应用程序之间切换
- api - 关于来自 Google Places API 的附近搜索请求的问题
- javascript - 如何选择特定的 JSON 对象?
- unity3d - Unity 像素艺术中的故障
- linux - 在 WSL 下的 Makefile 中使用标志运行 echo
- php - 如何获取图像的大小?
- leaflet - 使用 fullscreenControl 功能的问题