MySQL 程序
   其实整个过程是这样的,首先 要创建3个表 有版本号字段 
   表1version 0.0.1.0
   表2version 0.0.2.0
   表3version 0.0.3.0   要求对这3个表有升级, 升级到0.0.6.0 
  
   要写一段SQL 执行一次 就能对表进行升级,在升级之前检查版本号是否是最新的,如果是最新的就不用升级.否者就升级。
    就这个意思。。不过不能用存储过程。一段SQL完成
    wwwwa。。有办法么分不够,我另开贴。。    

解决方案 »

  1.   

     升级的内容可以是随便加一个insert就行!! 但是到0.0.0.6时,都要一样。
      

  2.   

    没有办法,MYSQL中不支持匿名块,IF判断必须在存储过程中。
      

  3.   

     恩。。就这样吧,就用SQL 语言, 很长一句话写
     例如 sql=. .....%$^&*()_ ;
      

  4.   


    start transaction; 
    DELIMITER $$
    CREATE PROCEDURE  up2()   
    BEGIN
       declare version varchar(20) ;
       declare temp varchar(20) ;
        set version = 70000;  
        set temp =( select  version from data1 where id=1 );
        select temp; -- 为什么我多次查询过来的值是70000 但我是数据库里面的确是10000。。为什么?
    IF VERSION<> temp THEN
    INSERT DATA1 VALUES(0,'aaa','bbbb','2010-10-10',' ');
    ELSE
    SELECT '不需要更新' ; 
    END IF;IF VERSION<> temp THEN
    INSERT DATA1 VALUES(0,'aaa','bbbb','2010-10-10',' ');
    ELSE
    SELECT '不需要更新' ; 
    END IF;
    IF VERSION<> temp THEN
    update data1 set version=70000 where id=1;
    ELSE
    SELECT '不需要更新' ; 
    END IF;
    END$$
    DELIMITER ;   
    commit;
    drop   PROCEDURE  up2;
       
       看注释。。HELp
      

  5.   

      就是说,用一条SQL语句是无法实现的? 这只能用存储过程了?
      

  6.   

     set temp =( select  version from data1 where id=1 );
    改成
    select  version into temp from data1 where id=1
      

  7.   

    set version = 70000;  
        set temp =( select  version from data1 where id=1 );
      

  8.   

        set version = 70000;  
        set temp =( select  version from data1 where id=1 );
        select temp; -- 为什么我多次查询过来的值是70000 但我是数据库里面的确是10000。。为什么?
    你的变量名和字段名重复了。这样会以变量名为准,也就是set version = 70000;  
      

  9.   

    ACMAIN_CHM 大哥,也就是说,我这个东西用一句SQL或函数什么的是写不出来的?
      只能用存储过程才能完成?。 是吗??。
      

  10.   

    用一句SQL或函数什么的是写不出来的?
    是的。或者用操作系统的脚本。(但很复杂)
      

  11.   

     还想在确定下,用多句SQL 。多个函数能写出来么?,,,
             。且不能存储过程
      

  12.   

     还想在确定下,用多句SQL 。多个函数能写出来么?
    不能
      

  13.   

    在上个帖子中已经说过,必须用SP,否则用ORACLE、POSTGRESQL(8.5以上),支持匿名块
      

  14.   

     - -!  哎,,没办法啊。。BOSS说,不要用存储过程,就用SQL 几句话写。。我该怎么办。。:(
      

  15.   

    为什么不能用SP解决?set temp =( select  version from data1 where id=1 );
        select temp; -- 为什么我多次查询过来的值是70000 但我是数据库里面的确是10000。。为什么?有同名字段名,以变量名为准