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

作者:qianhy 时间:2009-01-14 11:57:00 

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和这类操作系统不能撤销正在使用的表。

标签:
0
投稿

猜你喜欢

  • jquery中文手册上的一点错误--说说p标签失去焦点

    2009-09-13 21:24:00
  • MySQL旧版本升级为新版本

    2009-02-26 15:44:00
  • CSS兼容IE6,IE7,FF的技巧

    2010-04-01 12:34:00
  • 13个你希望早点知道的实用WordPress SQL查询语句[译]

    2010-02-28 12:48:00
  • Ajax缓存解决办法

    2008-10-22 13:42:00
  • 注册表单之死

    2008-08-07 13:02:00
  • IE9初窥:支持CSS3,和HTML5?

    2009-12-01 14:20:00
  • jquery密码强度测试工具源码

    2009-12-23 19:38:00
  • 提醒各位一下,IE透明会失效的

    2009-03-31 12:48:00
  • asp三天学好ADO对象之第二天

    2008-10-09 12:49:00
  • asp显示字符串前5个文字

    2008-08-10 18:47:00
  • 试试把xml和javascript写到同一个文件里面

    2009-10-02 16:53:00
  • 利用SQL Server复制技术实现数据同步更新

    2009-10-23 14:11:00
  • 网页设计者应当注意九大要点

    2007-08-10 13:30:00
  • [多图]新:60个国外创意404页面设计

    2008-12-05 12:00:00
  • ASP连接Access数据库的几种方法

    2013-06-01 20:33:19
  • IE7异常CSS 导致内存破坏漏洞

    2009-11-30 12:52:00
  • ASP如何跳出本次进入下一次循环

    2008-10-23 13:46:00
  • 轻松接触MaxDB和MySQL之间的协同性

    2008-11-27 16:25:00
  • PHPMyadmin2.10中文显示为乱码的解决办法

    2007-08-22 08:18:00
  • asp之家 网络编程 m.aspxhome.com