私はfield_tで始まる名前のテーブルで多くの列を持っていると私はそれが例えばmysqlのテーブルに複数の列名を変更する
field_cするように変更する必要があり、ここでの名前を変更するためのALTER TABLE文があります
ALTER TABLE my_table CHANGE field_t_class field_c_class longtext;
このパターンに続くすべての列を1つずつ変更する方法を教えてください。
私はfield_tで始まる名前のテーブルで多くの列を持っていると私はそれが例えばmysqlのテーブルに複数の列名を変更する
field_cするように変更する必要があり、ここでの名前を変更するためのALTER TABLE文があります
ALTER TABLE my_table CHANGE field_t_class field_c_class longtext;
このパターンに続くすべての列を1つずつ変更する方法を教えてください。
あなたはこの
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[_]%';
のように変更を生成することができます。また、...
NUMERIC_PRECISION、NUMERIC_SCALE、CHARACTER_SET_NAMEとCOLLATION_NAME、DATA_TYPEなどを追加し、このCHARACTER_MAXIMUM_LENGTHに基づいてする必要があります
取得'field_t%'のような名前を持つ最初の列名。その後
select C.COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS C
WHERE
C.TABLE_NAME='YourTableName' AND C.COLUMN_NAME like 'field_t%';
のような列名リネームの文字列にする:次にやる
rename_string= "RENAME COL1 to ReCol1
RENAME COL2 to ReCol2"
:
ALTER Table YourTableName {rename_string};
を私はALTERで、このためのサポートを見ることができないようrename_stringください
をテーブルhttp://dev.mysql.com/doc/refman/5.5/en/alter-table.htmlしかし、それが動作する場合は、データ型などがないので、私はより清潔です。 – gbn
@gbn:はい、それは働いています。私は以前にマシン上でテストしたが、それ自体は答えを投稿した。 –