Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mengubah jenis kolom secara massal di MySQL

Solusi tanpa prosedur tersimpan (hanya menggunakan phpMyAdmin atau alat DBA lainnya).

Jalankan kueri berikut

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';

Kueri ini akan mengembalikan Anda semua pernyataan untuk diaktifkan. Anda dapat menjalankannya atau menyimpannya ke dalam skrip SQL Upgrade

Contoh (dari tinyint ke bit):

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. Membuat tabel Pivot untuk absensi menggunakan php dan mysql

  2. Bagaimana menemukan nomor 4 digit unik gratis berikutnya

  3. Mengelompokkan beberapa pernyataan Mysql untuk mengambil jumlah beberapa status

  4. Tidak ingin mysql mentransmisikan String ke Integer secara otomatis

  5. Permintaan SQL untuk pesan terbaru