由于国产化需求,要把MySQL数据库迁移到达梦数据库,在转换过程中,长度为1的char类型字段,转换完成后变成3位,后面自动补0,导致部分查询条件出错误,把char类型改成varchar,然后再转换可以解决此问题。
1、使用系统表,查找到需要更新的字段类型"data_type",把需要修改的字段使用CONCAT拼接成可以执行的更新语句,例如下面的是用来把char类型更新成varchar类型。
SELECT
TABLE_NAME,
COLUMN_NAME,
DATA_TYPE,
COLUMN_COMMENT,
CONCAT( 'ALTER TABLE ', table_name, ' MODIFY COLUMN ', COLUMN_NAME, ' varchar(', CHARACTER_MAXIMUM_LENGTH, ');' )
FROM
information_schema.COLUMNS
WHERE
TABLE_SCHEMA = '库名'
AND data_type = 'char'