ALTER TABLE 表 MODIFY 列 属性
ALTER TABLE 表 CHANGE 原列名 新列名 新属性
但是我需要更改字段名,而不用动字段属性,按理说是用 ALTER TABLE 表 CHANGE 原列名 新列名 新属性 但是这个内部实现是开启了一个新空间,把旧数据转到新空间里面
有没有办法直接更改字段名字,因为我数据量太大了,而且是生产环境
有没有大神帮我出个主意
3 个解决方案
#1
目前的MYSQL没有这个功能,只要是ALTER TABLE COLUMN 则都 会生成新列,删除旧列。
#2
建一个这个表的视图
#3
无解
不过innodb 引擎测试过,如果你不改列定义,只是名称变一下,是很快的,除非被 block 了,否则是瞬间完成的,所以内容应该判断,如果定义不改,不会做数据转移的操作
不过innodb 引擎测试过,如果你不改列定义,只是名称变一下,是很快的,除非被 block 了,否则是瞬间完成的,所以内容应该判断,如果定义不改,不会做数据转移的操作
#1
目前的MYSQL没有这个功能,只要是ALTER TABLE COLUMN 则都 会生成新列,删除旧列。
#2
建一个这个表的视图
#3
无解
不过innodb 引擎测试过,如果你不改列定义,只是名称变一下,是很快的,除非被 block 了,否则是瞬间完成的,所以内容应该判断,如果定义不改,不会做数据转移的操作
不过innodb 引擎测试过,如果你不改列定义,只是名称变一下,是很快的,除非被 block 了,否则是瞬间完成的,所以内容应该判断,如果定义不改,不会做数据转移的操作