2008-09-17 9 views
2

Kann Datenbanken (MySQL insbesondere, jede SQL - MS, Oracle, Postgres - im Allgemeinen) Massenaktualisierungen, und selbst herausfinden, was der neue Wert sein sollte? Sagen wir zum Beispiel, ich habe eine Datenbank mit Informationen über eine Reihe von Computern, und alle diese Computer haben Laufwerke verschiedener Größen - irgendwo zwischen 20 und 250 GB. Eines Tages aktualisieren wir jeden einzelnen Computer um eine 120-GB-Festplatte. Gibt es eine Möglichkeit etwas wieKann irgendeine Datenbank Mathematik machen?

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

Antwort

2

Ja zu sagen:

update computers set total_disk_space = total_disk_space + 120; 
10

für die gesamte Tabelle dann:

Update Computers 
Set Total_Disk_Space = Total_Disk_Space + 120; 

Wenn Sie nur bestimmte aktualisieren möchten, können Sie dann‘ d benötigen Filter, zum Beispiel:

Update Computers 
Set Total_Disk_Space = Total_Disk_Space + 120 
Where PurchaseDate BETWEEN '1/1/2008' AND GETDATE(); 
2

I n Ihr Beispiel, wenn total_disk_space ein INT können Sie:

UPDATE computers 
SET total_disk_space = total_disk_space + 120; 

ich Sie Zeichendaten sind zu speichern, dann wird es viel interessanter sein.