rfc*_*484 2 mysql sql select alter
我在表中有很多列,名称以field_t开头,我必须将其更改为field_c
例如,以下是用于更改其中一列的名称的ALTER TABLE语句:
ALTER TABLE my_table CHANGE field_t_class field_c_class longtext;
Run Code Online (Sandbox Code Playgroud)
如何更改遵循此模式的所有列,而不是逐个更改?
你可以像这样生成ALTER
SELECT
CONCAT(
'ALTER TABLE ', C.TABLE_NAME, ' CHANGE ',
C.COLUMN_NAME, ' ', REPLACE(C.COLUMN_NAME, 'field_t', 'field_c')
)
FROM
INFORMATION_SCHEMA.COLUMNS C
WHERE
C.COLUMN_NAME LIKE 'field[_]t[_]%';
Run Code Online (Sandbox Code Playgroud)
您还需要附加DATA_TYPE等,并基于此CHARACTER_MAXIMUM_LENGTH,
NUMERIC_PRECISION,NUMERIC_SCALE,CHARACTER_SET_NAME和COLLATION_NAME ......