Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

thay đổi hàng loạt các loại cột trong MySQL

Giải pháp không có thủ tục được lưu trữ (chỉ sử dụng phpMyAdmin hoặc bất kỳ công cụ DBA nào khác).

Chạy truy vấn sau

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

Truy vấn này sẽ trả về cho bạn tất cả các câu lệnh cần kích hoạt. Bạn có thể chạy chúng hoặc lưu vào tập lệnh Nâng cấp SQL

Ví dụ (từ tinyint sang 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. 'LIKE ('% this% 'OR'% that% ') và cái gì đó =else' không hoạt động

  2. Theo dõi tập lệnh thay đổi / sửa đổi trong PHP?

  3. Làm cách nào mysql có thể chèn hàng triệu bản ghi nhanh hơn?

  4. Bắt org.hibernate.TransactionException:lỗi giao dịch lồng nhau không được hỗ trợ khi xóa

  5. Giới hạn lập chỉ mục toàn văn Mysql?