48 votes

Comment mettre à jour toutes les lignes de la table MySQL en même temps ?

Comment mettre à jour toutes les lignes de la table MySQL en même temps ?

Par exemple, j'ai le tableau :

 id    |  ip    | port      |  online_status |
1     |  ip1   | port1     |                |
2     |  ip2   | port2     |                |
3     |  ip3   | port3     |                |
4     |  ip4   | port4     |                |
5     |  ip5   | port5     |                |

Je prévois de créer une tâche cron et de surveiller certains serveurs, mais je ne sais pas exactement comment les mettre à jour tous à partir de la table en même temps. Quels sont quelques exemples sur la façon de le faire?

36voto

Bohemian Points 134107

Omettez la clause where

 update mytable set
column1 = value1,
column2 = value2,
-- other column values etc
;

Cela donnera à toutes les lignes les mêmes valeurs.

Ce n'est peut-être pas ce que vous voulez - considérez truncate puis une masse insert :

 truncate mytable; -- delete all rows efficiently
insert into mytable (column1, column2, ...) values
(row1value1, row1value2, ...), -- row 1
(row2value1, row2value2, ...), -- row 2
-- etc
; 

30voto

heximal Points 5478
update mytable set online_status = 'online'

Si vous souhaitez affecter des valeurs différentes, vous devez utiliser la technique TRANSACTION.

10voto

inorganik Points 2591

La valeur nulle par défaut d'un champ est « non nulle ». Vous devez donc le définir sur « null » avant de pouvoir définir cette valeur de champ pour un enregistrement sur null. Ensuite vous pouvez:

 UPDATE `myTable` SET `myField` = null

4voto

hari babu Points 31
UPDATE dummy SET myfield=1 WHERE id>1;

3voto

Vikrant Devda Points 37

utilisez simplement la requête UPDATE sans condition comme celle-ci

  UPDATE tablename SET online_status=0;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X