在我的公司,我们最近一直在对现有程序进行修改,该程序使用以下逻辑来执行一些数据库字段分配:
db-buffer1.field1 = if db-buffer1.field1 <> db-buffer2.field2
then db-buffer2.field2
else db-buffer1.field1
我不是 100% 确定原始程序员的意图。在决定是否分配新字段之前,任何人都可以帮助我理解比较字段值是否不同的价值吗?
如果比较是“假”并且我们最终分配了db-buffer1.field1 = db-buffer1.field1
我们是否避免对数据库进行写操作?
另请注意,此示例是ASSIGN
包含多个运行类似分配/比较逻辑的字段的较大语句的一部分。这对这个附加代码的价值有什么影响吗?(即语句中的所有比较ASSIGN
是否必须成功才能避免数据库写入?)