2

数据库(特别是 MySQL,任何 SQL——MS、Oracle、Postgres——一般来说)能否进行大规模更新,并自行确定新值应该是什么?例如,我有一个数据库,其中包含有关一堆计算机的信息,所有这些计算机都有各种大小的驱动器——从 20 GB 到 250 GB 不等。然后有一天,我们通过添加 120 GB 硬盘来升级每台计算机。有没有办法说类似

update computers set total_disk_space = (whatever that row's current total_disk_space is plus 120)
4

3 回答 3

10

对于整个表然后:

Update Computers 
Set Total_Disk_Space = Total_Disk_Space + 120;

如果您只想更新某些内容,那么您需要过滤器,例如:

Update Computers
Set Total_Disk_Space = Total_Disk_Space + 120
Where PurchaseDate BETWEEN '1/1/2008' AND GETDATE();
于 2008-09-17T02:32:04.360 回答
2

是的:

update computers set total_disk_space = total_disk_space + 120;
于 2008-09-17T02:30:58.887 回答
2

在您的示例中,如果 total_disk_space 是 INT 您可以使用:

UPDATE computers
SET total_disk_space = total_disk_space + 120;

如果你在存储角色数据,那么它会更有趣。

于 2008-09-17T02:34:11.950 回答