SQL Update语句未更新,执行时无错误



我每天计划以下两个更新语句,用净重或容重中较大的一个更新列(x_shippit_volumetric_weight(。我在那里有AND语句来阻止它覆盖任何现有的数据,如果它已经存在并且是正确的

问题是,即使x_shippit_volumetric_weight=0,数据也没有更新?执行这两个更新语句时也不会显示任何错误。

如果有任何关于它为什么不更新数据的帮助,我们将不胜感激。

UPDATE stock_items 
SET    x_shippit_volumetric_weight = Round( ( stock_items.x_height * stock_items.x_width_cm * stock_items.x_length_cm ) / 4000, 4) 
WHERE Round( ( stock_items.x_height * stock_items.x_width_cm * stock_items.x_length_cm ) / 4000, 4) > stock_items.weight
AND x_shippit_volumetric_weight <> Round( ( stock_items.x_height * stock_items.x_width_cm * stock_items.x_length_cm ) / 4000, 4) 
AND (stock_items.x_height * stock_items.x_width_cm * stock_items.x_length_cm) <> 0; 

UPDATE stock_items 
SET    stock_items.x_shippit_volumetric_weight = Round(( stock_items.weight ), 4) 
WHERE  stock_items.weight > Round( ( stock_items.x_height * stock_items.x_width_cm * stock_items.x_length_cm ) / 4000, 4) 
AND stock_items.x_shippit_volumetric_weight <> Round(( stock_items.weight ), 4); 

好的,我已经发现了数据不更新的原因(在某些情况下(。只要x_shippit_volumetric_weight的值为NULL,它就不会更新。我实际上不明白为什么,但是在其他两个UPDATE语句之前添加以下UPDATE语句可以缓解这个问题。

UPDATE stock_items 
SET    x_shippit_volumetric_weight = 0 
WHERE  x_shippit_volumetric_weight IS NULL;

最新更新