对mysql的数据库表结构做了一些改变,能否像微软sql那样导出一个脚本来自动将这些改变更新到旧数据库上?
比如:在java程序中执行sql语句或者前端mysql工具软件增加了一些数据库表,对一些表增加、删除字段,增加,删除索引等等,好像微软的sql可以在企业管理器中导出脚本文件,管理员只需要在客户那里执行这个脚本文件就能完成旧数据库表升级,那么mysql怎样做到这一点?

解决方案 »

  1.   

    可以show create table tblName; 象SQL SERVER一样得到建表语句,但不能得到alter table的语句,这一点上SQL SERVER也一样。
    mysql> show create table t1;
    +-------+-----------------------------------------
    | Table | Create Table
    +-------+-----------------------------------------
    | t1    | CREATE TABLE `t1` (
      `id` int(11) NOT NULL,
      `col` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
    +-------+-----------------------------------------
    1 row in set (0.00 sec)mysql>
      

  2.   

    那我给用户做数据库升级,还要手动写n个sql语句来组成脚本?那也太累人了呀?
    请问楼上是怎样给用户做数据库升级的?
      

  3.   

    自己把alter table 的语句写出来。
    当然你可以把用户的表结构从schema表中取得后和你的进行比较,然后自己生成alter table 语句。
      

  4.   

    当然你可以把用户的表结构从schema表中取得后和你的进行比较,然后自己生成alter table 语句
    ==============================================================================
    上面这句话中“...进行比较,然后自己生成alter table 语句”是指自己手工写,还是说能自动生成?
      

  5.   

    我是自己手工,导出各表字段,然后EXCEL中对比一下