Подтвердить что ты не робот

Как обновить все строки таблицы MySQL одновременно?

Как мне обновить все строки таблицы MySQL в одно и то же время?

Например, у меня есть таблица:

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

Я планирую создавать cronjob и контролировать некоторые серверы, но я точно не знаю, как их все обновить из таблицы в одно и то же время. Каковы некоторые примеры того, как это сделать?

4b9b3361

Ответ 1

Опустите предложение where:

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

Это даст всем строкам одинаковые значения.

Это может быть не то, что вы хотите - рассмотрите truncate, затем массу insert:

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

Ответ 2

update mytable set online_status = 'online'

Если вы хотите назначить разные значения, вы должны использовать технику TRANSACTION.

Ответ 3

Значение по умолчанию для поля "не равно нулю". Поэтому вы должны установить его в "null", прежде чем вы сможете установить для этого значения поля для любой записи значение null. Затем вы можете:

UPDATE `myTable` SET `myField` = null

Ответ 4

UPDATE dummy SET myfield=1 WHERE id>1;