我正在工作中进行重构,并将一列从一个表移到另一个表。
有一个表格代表一个架子static.connected_shelf(上面有 iot 设备),
还有一个表格代表 devices static.iot_devices。
现在,有新设备未安装在架子上,因此必须将属性iot_device_type_fk从static.connected_shelf移至static.iot_devices。
为了防止在尝试访问此属性时出现竞争条件,我需要修改我的查询,因此当它在其中搜索设备类型static.iot_devices但该列不存在时(在该环境中尚未发生重构),测试不会失败,而是返回static.connected_shelf并从那里获取价值。
下面是一个非常简单的查询示例:
query = """SELECT c.pk connected_shelf_fk, i.iot_device_type_fk device_type_fk, i.pk device_fk
FROM static.connected_shelf c
JOIN static.iot_devices i ON c.pk = i.connected_shelf_fk
WHERE i.pk = %(device_id)s"""
cursor.execute(query, {'device_id': device_id})所以在这里,我已经修改了查询,所以它iot_device_type_fk在static.iot_devices. 我如何确保如果该表中不存在该列,我将从中获取它static.connected_shelf?
潇潇雨雨
MMMHUHU
随时随地看视频慕课网APP
相关分类