我根据此question进行以下查询,以更新图像和stratodesk中的图像更新模式。这有效,但我注意到并非所有记录都已更新。
查询:
UPDATE IGNORE CONFIGVALUE
JOIN CONFIGOBJECT on CONFIGOBJECT.COID=CONFIGVALUE.COID
JOIN CLIENTSTATE on CONFIGOBJECT.COID=CLIENTSTATE.COID
JOIN STATUSVALUE on CLIENTSTATE.EID=STATUSVALUE.EID
SET CONFIGVALUE.VAL = CASE CONFIGVALUE.CODE
WHEN 'IMAGE' THEN
"2.40.4139d-EEc-k418-x64-181112"
WHEN 'IMAGE_UPDATE_MODE' THEN
'2'
ELSE
CONFIGVALUE.VAL
END
WHERE CONFIGVALUE.CODE IN ('IMAGE','IMAGE_UPDATE_MODE') AND CONFIGOBJECT.PARENT=3367 AND STATUSVALUE.VAL IN ('HP t520 Flexible Series TC');
我想使用上述查询中指定的映像来更新相关瘦客户机的映像,然后将它们设置为在重新启动时进行更新。
我注意到,该查询似乎只对过去使用stratodesk编辑过配置的瘦客户机有效。如果还没有,则查询不会更新它们。
我一直在阅读有关INSERT....ON DUPLICATE KEY UPDATE的信息,我认为我需要这样做才能获得理想的结果。问题是我不确定如何准备查询。
StratoDesk的数据库将配置值存储在一个表中,称为“ CODE”的列和名为“ VAL”的列
CODE包含所有可能的配置选项,VAL是相应的值(当然)。我考虑过尝试
我需要为丢失的每条记录的“ CODE”列中插入“ IMAGE”和“ IMAGE_UPDATE_MODE”,但是我需要插入值“ 2.40.4139d-EEc-k418-x64-181112”和“ 2”添加到“ VAL”列中。
转换上面我的更新语句的最佳方法是什么,以便该字段将更新该字段(如果该瘦客户机存在该字段),但为不存在的字段插入新的字段/值?我不确定语法。
对此我有点儿不了解,对语法的任何帮助,或者如果有人知道另一种/更好的方法,将不胜感激。
在您问“为什么不使用StratoDesk做到这一点?” 之前-这不是功能。使用他们的GUI无法执行我需要做的事情,因此我必须与SQL数据库进行交互。
致谢
菲尔
编辑:我很欣赏这似乎与我所链接的问题相似。这个问题回答了我的初期问题。这是我的下一个绊脚石,我不想重新打开原始问题。