用户名: 密码: 验证码:           网站地图 高级搜索 RSS订阅 收藏本站
Google
您的位置:首页>>网络编程>>Mysql>>阅读资讯:MySQL数据库中与 ALTER TABLE 有关的问题

MySQL数据库中与 ALTER TABLE 有关的问题

[ 来源: | 阅读:次 | 更新日期:2007-9-29 20:09:53 | 评论 0 条 | 我要投稿 ]

ALTER TABLE将表更改为当前字符集。如果在执行ALTER TABLE操作期间遇到重复键错误,原因在于新的字符集将2个键映射到了相同值,或是表已损坏。在后一种情况下,应在表上运行REPAIR TABLE。

www.yueluo.net

如果ALTER TABLE失败并给出下述错误,问题可能是因为在ALTER TABLE操作的早期阶段出现MySQL崩溃,没有名为A-xxx或B-xxx的旧表:

字串6

Error on rename of './database/name.frm'
to './database/B-xxx.frm' (Errcode: 17)

字串6

在该情况下,进入MySQL数据目录,并删除其名称为以A-或B-开始的所有文件(或许你希望将它们移动到其他地方而不是删除它们)。 字串9

ALTER TABLE的工作方式如下:

字串6

用请求的结构变化创建名为A-xxx的新表。 字串5

将所有行从原始表拷贝到A-xxx。

www.yueluo.net

将原始表重命名为B-xxx。 字串8

将A-xxx重命名为原始表的名称。

字串9

删除B-xxx。

月落网

如果在重命名操作中出错,MySQL将尝试撤销更改。如果错误很严重(尽管这不应出现),MySQL会将旧表保留为B-xxx。简单地在系统级别上重命名表文件,应能使数据复原。 字串5

如果在事务性表上使用ALTER TABLE,或正在使用Windows或OS/2操作系统,如果已在表上执行了LOCK TABLE操作,ALTER TABLE将对表执行解锁操作。这是因为InnoDB和这类操作系统不能撤销正在使用的表。 月落网


Tags:MySQL,数据库,ALTER TABLE
责任编辑:
您的评论
用户名:新注册) 密码: 匿名评论 [所有评论]

·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为