使用节点红色和蓝色混合更新 sql db 中的列
update a column in sqldb using node red and bluemix
我正在使用 Node-RED 将信息插入包含的 sqldb。
我已成功输入数据,但我似乎无法更新它。我不确定语法。 table 称为 ITEMS 并且有 2 列 ID 和 ITEMS。我想不断更新第一个元素。为什么这不起作用的任何建议?
[
{
"id": "6ba3d5df.945c2c",
"type": "sqldb out",
"z": "ed26e4d5.12d918",
"service": "SQL Database-kr",
"table": "ITEMS",
"name": "",
"x": 571,
"y": 167,
"wires": []
},
{
"id": "fb5a8388.04a58",
"type": "inject",
"z": "ed26e4d5.12d918",
"name": "",
"topic": "ITEM",
"payload": "andy",
"payloadType": "str",
"repeat": "60",
"crontab": "",
"once": false,
"x": 142,
"y": 218,
"wires": [
[
"caaf691d.355098",
"94b0c839.6b4f38"
]
]
},
{
"id": "94b0c839.6b4f38",
"type": "debug",
"z": "ed26e4d5.12d918",
"name": "",
"active": true,
"console": "false",
"complete": "payload",
"x": 588,
"y": 253,
"wires": []
},
{
"id": "caaf691d.355098",
"type": "sqldb in",
"z": "ed26e4d5.12d918",
"service": "SQL Database-kr",
"query": "UPDATE ITEMS \nSET ID = 1,ITEM = msg.payload,\nWHERE ID; ",
"params": "",
"name": "",
"x": 405.5,
"y": 287,
"wires": [
[
"94b0c839.6b4f38"
]
]
},
{
"id": "70a9564.f8f56a8",
"type": "inject",
"z": "ed26e4d5.12d918",
"name": "",
"topic": "",
"payload": "andrew",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": true,
"x": 206.5,
"y": 176,
"wires": [
[
"88cf0713.7730f8"
]
]
},
{
"id": "88cf0713.7730f8",
"type": "function",
"z": "ed26e4d5.12d918",
"name": "",
"func": "msg.payload =\n{\n ID: 1,\n ITEM : msg.payload,\n}\nreturn msg;\n",
"outputs": 1,
"noerr": 0,
"x": 429.5,
"y": 171,
"wires": [
[
"6ba3d5df.945c2c"
]
]
}
]
您的更新查询似乎是
UPDATE ITEMS SET ID = 1,ITEM = msg.payload WHERE ID;
没有接缝可以测试 WHERE ID
值以限制对右行的更新。您真的需要重置 ID 值吗?
我期待的是更像这样的东西
UPDATE ITEMS SET ITEM = ? WHERE ID = 1;
并且 msg.payload 应该在 参数标记 字段中。
我正在使用 Node-RED 将信息插入包含的 sqldb。
我已成功输入数据,但我似乎无法更新它。我不确定语法。 table 称为 ITEMS 并且有 2 列 ID 和 ITEMS。我想不断更新第一个元素。为什么这不起作用的任何建议?
[
{
"id": "6ba3d5df.945c2c",
"type": "sqldb out",
"z": "ed26e4d5.12d918",
"service": "SQL Database-kr",
"table": "ITEMS",
"name": "",
"x": 571,
"y": 167,
"wires": []
},
{
"id": "fb5a8388.04a58",
"type": "inject",
"z": "ed26e4d5.12d918",
"name": "",
"topic": "ITEM",
"payload": "andy",
"payloadType": "str",
"repeat": "60",
"crontab": "",
"once": false,
"x": 142,
"y": 218,
"wires": [
[
"caaf691d.355098",
"94b0c839.6b4f38"
]
]
},
{
"id": "94b0c839.6b4f38",
"type": "debug",
"z": "ed26e4d5.12d918",
"name": "",
"active": true,
"console": "false",
"complete": "payload",
"x": 588,
"y": 253,
"wires": []
},
{
"id": "caaf691d.355098",
"type": "sqldb in",
"z": "ed26e4d5.12d918",
"service": "SQL Database-kr",
"query": "UPDATE ITEMS \nSET ID = 1,ITEM = msg.payload,\nWHERE ID; ",
"params": "",
"name": "",
"x": 405.5,
"y": 287,
"wires": [
[
"94b0c839.6b4f38"
]
]
},
{
"id": "70a9564.f8f56a8",
"type": "inject",
"z": "ed26e4d5.12d918",
"name": "",
"topic": "",
"payload": "andrew",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": true,
"x": 206.5,
"y": 176,
"wires": [
[
"88cf0713.7730f8"
]
]
},
{
"id": "88cf0713.7730f8",
"type": "function",
"z": "ed26e4d5.12d918",
"name": "",
"func": "msg.payload =\n{\n ID: 1,\n ITEM : msg.payload,\n}\nreturn msg;\n",
"outputs": 1,
"noerr": 0,
"x": 429.5,
"y": 171,
"wires": [
[
"6ba3d5df.945c2c"
]
]
}
]
您的更新查询似乎是
UPDATE ITEMS SET ID = 1,ITEM = msg.payload WHERE ID;
没有接缝可以测试 WHERE ID
值以限制对右行的更新。您真的需要重置 ID 值吗?
我期待的是更像这样的东西
UPDATE ITEMS SET ITEM = ? WHERE ID = 1;
并且 msg.payload 应该在 参数标记 字段中。