Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да преминете през всички таблици в база данни, за да актуализирате колони

Една безболезнена опция би била да се създаде заявка, която генерира UPDATE оператори, които искате да изпълните на всички таблици:

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

Можете да копирате изхода от тази заявка, да го поставите в редактора на заявки и да го стартирате.

Актуализация:

Както @PaulSpiegel посочи, горното решение може да е неудобно, ако се използва редактор като HeidiSQL, защото ще изисква ръчно копиране на всеки запис в набора от резултати. Използване на трик с помощта на GROUP_CONCAT() ще даде един низ, съдържащ всяка желана UPDATE заявка в него:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Възможно ли е да има параметър по подразбиране за съхранена процедура на mysql?

  2. Изберете последните 20 реда по нарастване - PHP/MySQL

  3. C# Mysql UTF8 кодиране

  4. Опции за избор на канал от DB в зависимост от други опции за избор

  5. Ограничение на първичния ключ MySql с име