我在一个表中有许多名称以 field_t 开头的列,我必须将其更改为 field_c
例如,这是更改其中一列名称的 ALTER TABLE 语句:
ALTER TABLE my_table CHANGE field_t_class field_c_class longtext;
如何更改所有遵循此模式的列,而不是逐一更改?
最佳答案
您可以像这样生成 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[_]%';
您还需要根据此 CHARACTER_MAXIMUM_LENGTH 添加 DATA_TYPE 等,
NUMERIC_PRECISION、NUMERIC_SCALE、CHARACTER_SET_NAME 和 COLLATION_NAME...
关于mysql - 更改mysql表中的多个列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9002418/