create table xx(
id varchar(20)
);alter table xx change id idd varchar(30);如果id字段有个几百万的数据量,这个换名将扫描全表.性能急速下降.请问:有什么别的方法更换表名(字段的类型也要是改的)不用扫描全表的?
id varchar(20)
);alter table xx change id idd varchar(30);如果id字段有个几百万的数据量,这个换名将扫描全表.性能急速下降.请问:有什么别的方法更换表名(字段的类型也要是改的)不用扫描全表的?
然后创建同样的表,你可以直接show create table得到当前表
在test2中创建这个表,然后alter table xx change id idd varchar(30);,下一步,直接把test2下的 xx.frm 复制到 当前数据库目录中。
以上步骤非官方方法,并且一般对仅修改字段名有效,如改变了字段类型则不行。 varchar(20 到 varchar(30) 应该还可以,你可以自己试一下。提醒! 做好备份!
idd varchar(30)
);insert into xx1 select * from xx;
方法二、研究MYSQL的源代码,直接修改其原代码,
这样说吧,我移动物理表结构,不新建表,一句话sql完成... 楼上2位大哥的方法,在我工作的需求中是不可取的..~~