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;