我的mysql的引擎是isam,不支持外键,怎样将它转成inodb?
   
   有朋友说输入alter table foo type=inodb,但是我dos下控制mysql输入"alter table foo type=inodb;",出现 Unknown table engine 'inodb',没有转换成功啊?
   怎么轮换?

解决方案 »

  1.   

    一个小小的拼写错误 是innodb 不是inodbalter table foo type=innodb
      

  2.   

     Innodb存储引擎支持FOREIGN KEY和REFERENCES子句。Innodb存储引擎执行ADD [CONSTRAINT [symbol]] FOREIGN KEY (...) REFERENCES ... (...)。请参见15.2.6.4节,“FOREIGN KEY约束”。
      

  3.   

    MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  4.   

    你关键字都打错了。。
    是InnoDB 另外修改表引擎 最好用 engine
    alter table tbname engine=Innodb;
      

  5.   


    有没有其他的办法呢,难道只有这么一个一个表用DOS命令手动来转换吗?
    我是在学hibernate,在他的配置的文件上有没有对这个选项的配置呢?
      

  6.   


    我安了一个sqlyong,怎么操作啊?
      

  7.   


    对已经生成的表,没有办法,你只能一个一个进行转换。 不过一般的方法是show tables把所有的表显示出来 然后你可以在字处理软件比如EXCEL中生成所有表的 alter table语句。至于在配置文件my.ini / my.cnf 中你可以添加默认的表的存储引擎为innodb,不过这个只是个默认值,对现有表并不起转换作用。仅对新建表时不注册具体存储引擎时才会以这个默认存储引擎建表。
      

  8.   

    我说的是hibernate的配置文件,不是是XXX.hbm.xml与XXX.cfg.xml吗?在这两个文件里面怎么配置,让它生成的表是innodb,而不是isam?还教我一下用sqlYong这个管理的工具怎么来改变。
      

  9.   


    我刚刚下载了那个SQLyog,确实很好用啊。不过要钱。
      

  10.   

    我还是不知怎么用它转换成innodb啊,用hibernate生成的table仍然是isam啊??
      

  11.   


    那就用phpmyadmin吧,很简单。点击表的“操作”然后将他的存储方式选择 InnoDB 后点击执行 就可以了。
      

  12.   

    怪事,phpmyadmin 表 → 操作 → 表选项 → Storage Engine 里面只有以下几个选项,却没有InnoDB。<option value="myisam" title="Default engine as of MySQL 3.23 with great performance" selected="selected">
        MyISAM
    </option>
    <option value="memory" title="Hash based, stored in memory, useful for temporary tables">
        MEMORY
    </option>
    <option value="blackhole" title="/dev/null storage engine (anything you write to it disappears)">
        BLACKHOLE
    </option>
    <option value="archive" title="Archive storage engine">
        ARCHIVE
    </option>
    <option value="federated" title="Federated MySQL storage engine">
        FEDERATED
    </option>
    <option value="mrg_myisam" title="Collection of identical MyISAM tables">
        MRG_MYISAM
    </option>
                    
      

  13.   

    你把库导出来,然后删除每个CREATE TABLE后的引擎描述。再在INI文件里指定默认的引擎,再导入改过的SQL脚步。