Может ли любая база данных сделать математику? - PullRequest
2 голосов
/ 17 сентября 2008

Могут ли базы данных (в частности MySQL, любые SQL - MS, Oracle, Postgres - в целом) выполнять массовые обновления и самостоятельно выяснять, каким должно быть новое значение? Например, у меня есть база данных с информацией о множестве компьютеров, и все эти компьютеры имеют диски разных размеров - от 20 до 250 ГБ. Затем однажды мы модернизируем каждый компьютер, добавляя жесткий диск объемом 120 ГБ. Есть ли способ сказать что-то вроде

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

Ответы [ 3 ]

10 голосов
/ 17 сентября 2008

Для всей таблицы:

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();
2 голосов
/ 17 сентября 2008

В вашем примере, если total_disk_space является INT, вы можете использовать:

UPDATE computers
SET total_disk_space = total_disk_space + 120;

Если вы храните символьные данные, тогда это будет гораздо интереснее.

2 голосов
/ 17 сентября 2008

Да

update computers set total_disk_space = total_disk_space + 120;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...