2015-12-30 29 views
-1

我有一個Node-RED應用程序,它有一個只在Node-RED部署後第一次工作的UPDATE語句,額外的執行UPDATE不是「提交」。UPDATE SQL不適用於Node-RED Bluemix

表中的SQL數據庫( 「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); 

守則節點RED - 點擊注入到執行UPDATE(在PONTOS Column上設置一個隨機數)並查看結果:

[{「id」:「ec3fff17.1cc7c8」,「type」:「function」,「z」:「4d04a829.19941」,「name」:「」,「func」:「msg.payload = \「UPDATE CORRIDA SET PONTOS = \」+ Math.floor((Math.random()* 100)+ 1)\ n + \「WHERE PLAYER ='\」+ \「LMM \」+ \「'\」; \ n \ nreturn msg;「,」outputs「:」1「,」noerr「:0,」x「:391,」y「:546,」wires「:[[」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 in」,「z」:「4d04a829.19941」,「service」:「SQL DB BN」,「query」:「」,「params」:「」,「name」:「」, X 「:581,」 Y 「:510,」 線 「:[[」 c76fde76.f446" ]],{「id」:「c76fde76.f446」,「type」:「sqldb in」,「z」:「4d04a829.19941」,「service」:「SQL DB BN」,「query」:「 SELECT PLAYER, PONTOS FROM CORRIDA;「,」params「:」「,」name「:」「,」x「:722,」y「:540,」wires「:[[」a7bd54cc.d207b「]] }]

回答

0

剛剛找到答案。 如果sqldb節點上的查詢字段爲空,它將查找有效負載並運行它並填充字段...所以只有在第一次運行時節點纔會查看有效負載,所有後續運行都會運行發送的相同查詢第一次運行的有效載荷。 (不太瞭解這個功能的用處)。