免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2112 | 回复: 7
打印 上一主题 下一主题

如何修改table的名称? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-06 13:08 |只看该作者 |倒序浏览
我用create table aa (...)建立了一个table,现在想要修改这个aa 为 bb
请问那条命令支持?

论坛徽章:
0
2 [报告]
发表于 2005-11-06 15:12 |只看该作者
有人说
ALTER TABLE TableName1 RENAME COLUMN FieldName4 TO FieldName5

这个可以..但是我test不行....也是郁闷...

论坛徽章:
0
3 [报告]
发表于 2005-11-06 17:59 |只看该作者
呵呵,请楼上2位仔细看看手册先。

论坛徽章:
0
4 [报告]
发表于 2005-11-06 20:08 |只看该作者
答案已经找到,不过不是在手册上!不知道手册是否写着,或者我看的手册不全?
alter table aa rename bb;

论坛徽章:
0
5 [报告]
发表于 2005-11-06 20:34 |只看该作者
看来你还得学会怎么看手册才行哦

论坛徽章:
0
6 [报告]
发表于 2005-11-06 23:21 |只看该作者
是啊,不知道有没有教人看手册的 FAQ啊
哈哈,看来还需要很多努力!
多谢老大指导

论坛徽章:
0
7 [报告]
发表于 2005-11-07 10:21 |只看该作者
停数据库,直接把表文件的名字改掉就可以了(三个文件)。这样也是办法:)

论坛徽章:
0
8 [报告]
发表于 2005-11-07 10:48 |只看该作者
RENAME TABLE 句法

RENAME TABLE tbl_name TO new_tbl_name[, tbl_name2 TO new_tbl_name2,...]

更名是以原子方式(atomically)执行,这就意味着,当更名正在运行时,其它的任何线程均不能该表。这使得以一个空表替换一个表成为可能。

CREATE TABLE new_table (...);
RENAME TABLE old_table TO backup_table, new_table TO old_table;

改名是从左到右执行的,这就意味着,如果你希望交换两个表名,你不得不这样做:

RENAME TABLE old_table    TO backup_table,
             new_table    TO old_table,
             backup_table TO new_table;

只要两个数据库在同一个磁盘上,你也可以从一个数据库更名到另一个数据库:

RENAME TABLE current_db.tbl_name TO other_db.tbl_name;

当你执行 RENAME 时,你不能有任何锁定的表或活动的事务。你同样也必须有对原初表的 ALTER 和 DROP 权限,以及对新表的 CREATE 和 INSERT 权限。

如果在多表更名中,MySQL 遭遇到任何错误,它将对所有被更名的表进行倒退更名,将每件事物退回到最初状态。

RENAME TABLE 在 MySQL 3.23.23 中被加入。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP