gpt4 book ai didi

mysql - 使用 Node-Red 插入事务期间出现 ER_PARSE_ERROR

转载 作者:行者123 更新时间:2023-11-29 21:09:28 24 4
gpt4 key购买 nike

我有一些 Node-Red 流,用作我正在开发的 Web 应用程序的 REST 接口(interface)。然而,我在 MySQL 上遇到了插入事务的问题。

输入到 mysql Node 的查询是:

START TRANSACTION;
INSERT INTO `light_schedule` (`name`, `light_pwm`,
`accent_pwm_red`, `accent_pwm_green`, `accent_pwm_blue`, `strobe`,
`start_date`, `start_time`, `end_date`, `end_time`, `repeat_type`,
`repeat_every`, `repeat_sunday`, `repeat_monday`, `repeat_tuesday`,
`repeat_wednesday`, `repeat_thursday`, `repeat_friday`, `repeat_saturday`,
`repeat_by`, `end_after_num`, `end_on`, `is_template`)
VALUES ('example', NULL, NULL, NULL, NULL, 1, '2016-4-1', NULL, NULL, NULL, 2, 1, 1, 1, 1,
1, 1, 1, 1, NULL, NULL, NULL, 0);

SET @schedule = LAST_INSERT_ID();

INSERT INTO `strobe_colors` (`schedule_id`, `order_index`,
`duration`, `accent_pwm_red`, `accent_pwm_green`, `accent_pwm_blue`,
`rainbow`)
VALUES (@schedule, 0, 4600, NULL, NULL, NULL, 1),
(@schedule, 1, 4100, 150, 200, 163, 0);

INSERT INTO `lights_schedules` (`light_id`, `schedule_id`)
VALUES (5, @schedule),
(6, @schedule);

COMMIT;

如果我将其复制并粘贴到 phpMyAdmin 的查询窗口中,该查询将完美运行。但是,当我尝试通过流程启动它时,出现错误:

Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO
`light_schedule` (`name`, `light_pwm`, `accent_pwm_red`, `accent_pw' at line 2

我一直无法在这个错误上取得很大进展。我发现最有帮助的事情是建议确保我在所有列和表名上都加上反引号,但我这样做没有效果。

最佳答案

看来这是 mysql Node 对 node-red 的限制。我尝试将查询分解为最简单的部分,然后从那里开始构建,看看问题出在哪里。经过一些测试并将大量垃圾插入到我的数据库中后,看来该 Node 类型并不是为处理多个查询而构建的,其中包括无法处理事务。

我的下一个解决方案是尝试创建一个存储过程来运行事务,但使用简单的 SELECT 过程进行测试似乎表明该 Node 也存在过程问题。无论我在数据库上设置什么权限或什么用户创建该过程,mysql Node 都会声称它没有执行权限。

我决定的解决方案是创建一个mysql调用链,通过flow.set将相关数据转发到功能 Node 。不幸的是,这确实意味着我无法利用事务,但对于这个项目来说,它们“很高兴拥有”不仅仅是一个关键的数据库功能。

关于mysql - 使用 Node-Red 插入事务期间出现 ER_PARSE_ERROR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36515284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com