Mysql
 sql >> Database >  >> RDS >> Mysql

Come scorrere tutte le tabelle su un database per aggiornare le colonne

Un'opzione indolore sarebbe quella di creare una query che generi UPDATE istruzioni che vuoi eseguire su tutte le tabelle:

SELECT CONCAT('UPDATE ', a.table_name, ' SET date = "2016-04-20" WHERE name = "Example";')
FROM information_schema.tables a
WHERE a.table_schema = 'YourDBNameHere'

Puoi copiare l'output da questa query, incollarlo nell'editor di query ed eseguirlo.

Aggiornamento:

Come ha sottolineato @PaulSpiegel, la soluzione di cui sopra potrebbe essere scomoda se si utilizza un editor come HeidiSQL, perché richiederebbe la copia manuale di ogni record nel set di risultati. Impiegare un trucco usando GROUP_CONCAT() darebbe una singola stringa contenente ogni UPDATE desiderato interrogare in esso:

SELECT GROUP_CONCAT(t.query SEPARATOR '; ')
FROM
(
    SELECT CONCAT('UPDATE ', a.table_name,
                  ' SET date = "2016-04-20" WHERE name = "Example";') AS query,
        '1' AS id
    FROM information_schema.tables a
    WHERE a.table_schema = 'YourDBNameHere'
) t
GROUP BY t.id