PostgreSQL - Requête UPDATE

Le PostgreSQL UPDATELa requête est utilisée pour modifier les enregistrements existants dans une table. Vous pouvez utiliser la clause WHERE avec la requête UPDATE pour mettre à jour les lignes sélectionnées. Sinon, toutes les lignes seraient mises à jour.

Syntaxe

La syntaxe de base de la requête UPDATE avec la clause WHERE est la suivante -

UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];

Vous pouvez combiner N nombre de conditions à l'aide des opérateurs AND ou OR.

Exemple

Considérez la table COMPANY , ayant des enregistrements comme suit -

testdb# select * from COMPANY;
 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | Paul  |  32 | California|  20000
  2 | Allen |  25 | Texas     |  15000
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000
  6 | Kim   |  22 | South-Hall|  45000
  7 | James |  24 | Houston   |  10000
(7 rows)

Voici un exemple qui mettrait à jour ADDRESS pour un client dont l'ID est 6 -

testdb=# UPDATE COMPANY SET SALARY = 15000 WHERE ID = 3;

Désormais, la table COMPANY contiendrait les enregistrements suivants -

id | name  | age | address    | salary
----+-------+-----+------------+--------
  1 | Paul  |  32 | California |  20000
  2 | Allen |  25 | Texas      |  15000
  4 | Mark  |  25 | Rich-Mond  |  65000
  5 | David |  27 | Texas      |  85000
  6 | Kim   |  22 | South-Hall |  45000
  7 | James |  24 | Houston    |  10000
  3 | Teddy |  23 | Norway     |  15000
(7 rows)

Si vous souhaitez modifier toutes les valeurs de colonne ADDRESS et SALARY dans la table COMPANY, vous n'avez pas besoin d'utiliser la clause WHERE et la requête UPDATE serait la suivante -

testdb=# UPDATE COMPANY SET ADDRESS = 'Texas', SALARY=20000;

Désormais, la table COMPANY aura les enregistrements suivants -

id | name  | age | address | salary
----+-------+-----+---------+--------
  1 | Paul  |  32 | Texas   |  20000
  2 | Allen |  25 | Texas   |  20000
  4 | Mark  |  25 | Texas   |  20000
  5 | David |  27 | Texas   |  20000
  6 | Kim   |  22 | Texas   |  20000
  7 | James |  24 | Texas   |  20000
  3 | Teddy |  23 | Texas   |  20000
(7 rows)