重命名一个列(with ALTER TABLE ... CHANGE COLUMN)不幸地需要MySQL运行一个完整的表副本.
查看pt-online-schema-change.这有助于您对表进行多种类型的ALTER更改,而不会在ALTER的持续时间内锁定整个表.在将数据复制到新表时,您可以继续读取和写入原始表.通过触发器捕获更改并将其应用于新表.
例:
pt-online-schema-change h=localhost,D=databasename,t=tablename \
--alter 'CHANGE COLUMN oldname newname NUMERIC(9,2) NOT NULL'
Run Code Online (Sandbox Code Playgroud)
更新: MySQL 5.6可以在不重建表的情况下执行某些类型的ALTER操作,并且更改列的名称是在线更改所支持的名称之一.有关哪种类型的更改支持或不支持此操作的概述,请参阅http://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html.
| 归档时间: |
|
| 查看次数: |
7230 次 |
| 最近记录: |