我有一个Node-RED应用程序,其UPDATE语句仅在Node-RED部署后第一次运行,在其他执行时UPDATE未“提交”。
SQL DB中的表(“SQL DB BN”):
CREATE TABLE CORRIDA (
MASTER VARCHAR(10),
ESTADO VARCHAR(10),
PLAYER VARCHAR(10),
PONTOS INT );
INSERT创建调试行:
INSERT INTO CORRIDA VALUES ("LMM", "INICIO", "LMM", 0);
Node-RED中的代码 - 单击inject执行UPDATE(在PONTOS列上设置一个随机数)并查看结果:
[{ “ID”: “ec3fff17.1cc7c8”, “类型”: “功能”, “Z”: “4d04a829.19941”, “姓名”: “”, “FUNC”:“msg.payload = \“UPDATE CORRIDA SET PONTOS = \”+ Math.floor((Math.random()* 100)+ 1)\ n + \“WHERE PLAYER ='\”+ \“LMM \”+ \“'\” ; \ n \ nreturn msg;“,”输出“:”1“,”noerr“:0,”x“:391,”y“:546,”wire“:[[”90698116.09c58“,”a7bd54cc.d207b “]]},{” ID “:” ad39d58.3809428" , “类型”: “注射”, “Z”: “4d04a829.19941”, “姓名”: “”, “主题”: “”,“有效载荷“:””, “载荷类型”: “日期”, “重复”: “”, “crontab的”: “”, “一次”:假, “×”:215, “Y”:538, “线”:[ [ “ec3fff17.1cc7c8”]]},{ “ID”: “a7bd54cc.d207b”, “类型”: “调试”, “Z”: “4d04a829.19941”, “名称”: “”, “活性”:真, “控制台”: “假”, “完成”: “真”, “×”:850, “Y”:619, “线”:[]},{ “ID”: “90698116.09c58”,“类型“:” SQLDB 在“,”z“:”4d04a829.19941“,”service“:”SQL DB BN”, “查询”: “”, “PARAMS”: “”, “姓名”: “”, “×”:581, “Y”:510, “线”:[[ “c76fde76.f446”]]} { “ID”: “c76fde76.f446”, “类型”:“SQLDB 在“,”z“:”4d04a829.19941“,”service“:”SQL DB BN“,”query“:”SELECT PLAYER, PONTOS来自 CORRIDA;”, “PARAMS”: “”, “姓名”: “”, “×”:722, “Y”:540, “线”:[[ “a7bd54cc.d207b”]]}]
答案 0 :(得分:0)
刚刚找到答案。 如果sqldb节点上的Query字段为空,它会查看有效负载并运行它并填写该字段...因此,只有在第一次运行时,节点才会查看有效负载,所有后续运行都会运行相同的查询。第一次运行的有效载荷。 (不太了解此功能的用处)。