首页  韩国资源  酷站加油  我的展厅  设计名站  古典元素  推荐下载  设计欣赏  每周专访  招募精英  人才专区  网页教程  平面设计  编程开发  设计竞赛
当前位置:首页 > 编程开发 > 数据库编程 > 正文
Google
MySQL数据库中有关ALTER TABLE问题
来源:68design.net 2007年09月30日 08:37 网友评论:0条 点击:

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

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

  Error on rename of './database/name.frm'
  to './database/B-xxx.frm' (Errcode: 17)
  在该情况下,进入MySQL数据目录,并删除其名称为以A-或B-开始的所有文件(或许你希望将它们移动到其他地方而不是删除它们)。

  ALTER TABLE的工作方式如下:

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

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

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

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

  删除B-xxx。

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

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

上一篇:MySQL 数据库中对子查询的限制   下一篇:MySQL数据库中与优化器有关的事宜
收藏此页】【打印】【关闭
 相关文章  我要点评
·SQL Server2008数据库引擎功能的重大更改
·SQLite不同于其他大部分的SQL数据库引擎
·MySQL对服务器端光标的限制
·IBM DB2数据库的注意事项
·DB2数据库创建存储过程时遇到的错误现象
·使用SQL Server数据库嵌套子查询
·删除Oracle数据库10g垃圾表的最新方法
·MySQL数据库双机热备的配置方法

免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有任何异议,请联络:68design#163.com
转载要求:作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印。



关于我们 | 在线反馈 | 广告报价 | 友情链接 | 联系我们 | 免责声明 | 在线投稿 | 网站地图
Copyright © 2003-2007 68design.net, All Rights Reserve 【找网页设计师,当然上网页设计师联盟】