首页 > 解决方案 > 第二个和第三个更新语句实际上并没有更新

问题描述

我尝试更改“;” 以所有不同的顺序和任何其他方式,这不会更新任何列。但是当它像这样时,它只运行第一个语句。PS:如果这很重要,我正在使用 mimir。

这是代码:

ALTER TABLE MODEL 
ADD MOD_WAIT_CHG INT(11);


UPDATE MODEL 
SET MOD_WAIT_CHG = 100
WHERE MOD_CODE = 'C-90A';

UPDATE MODEL 
SET MOD_WAIT_CHG = 75
WHERE MOC_CODE = 'PA23-250';

UPDATE MODEL 
SET MOD_WAIT_CHG = 50
WHERE MOC_CODE = 'PA31-350';

标签: sql

解决方案


我认为问题是因为MOC_CODE您必须输入 MOD_CODE ,而且您不能在数据类型上指定列宽int

对于这种情况,最好使用 Transaction 如下:

begin transaction;

    ALTER TABLE MODEL ADD MOD_WAIT_CHG INT;

    UPDATE MODEL SET MOD_WAIT_CHG = 100 WHERE MOD_CODE = 'C-90A';
    
    UPDATE MODEL SET MOD_WAIT_CHG = 75 WHERE MOD_CODE = 'PA23-250';
    
    UPDATE MODEL SET MOD_WAIT_CHG = 50 WHERE MOD_CODE = 'PA31-350';
 commit;

推荐阅读