Mysql
 sql >> Baza danych >  >> RDS >> Mysql

masowa zmiana typów kolumn w MySQL

Rozwiązanie bez procedur składowanych (przy użyciu tylko phpMyAdmin lub dowolnego innego narzędzia DBA).

Uruchom następujące zapytanie

SELECT 
    CONCAT('ALTER TABLE ',
            TABLE_NAME,
            ' CHANGE COLUMN ',
            COLUMN_NAME,
            ' ',
            column_name,
            ' TARGET_TYPE ',
            CASE
                WHEN IS_NULLABLE = 'NO' THEN ' NOT '
                ELSE ''
            END,
            ' NULL;') AS que
FROM
    information_schema.columns
WHERE
    table_schema = 'MY DB'
        AND data_type = 'SOURCE_TYPE';

To zapytanie zwróci Ci wszystkie instrukcje do uruchomienia. Możesz je uruchomić lub zapisać w skrypcie aktualizacji SQL

Przykład (od maleńkiego do kawałka):

ALTER TABLE mytable CHANGE COLUMN redacted redacted BIT  NULL;
ALTER TABLE mytable CHANGE COLUMN redacted2 redacted2 BIT NOT NULL;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP/MySQL:Najlepsze praktyki w zakresie operacji/przechowywania pieniędzy?

  2. aktualizowanie wierszy zamiast tworzenia nowej bazy danych wpisów android

  3. Zwiększenie klucza podstawowego MySQL Auto o 10

  4. Wydajność MySQL – 5 parametrów z pliku konfiguracyjnego

  5. Hibernacja koduje źle podczas utrwalania obiektów [UTF-8]