我查询一张表的最大id,之后清空表数据,并设定表的自增长初始值为该最大id,不知道哪出问题了,求大神指导
--------------------------------------------
create procedure prc_alter()
BEGIN
declare var_increamentId BIGINT DEFAULT 0;
set var_increamentId := (select max(id) from ia_track_month);
TRUNCATE table ia_track_month;
alter table ia_track_month auto_increment = var_increamentId;
commit;
end;

解决方案 »

  1.   

    SET @asql=CONCAT('alter table ia_track_month auto_increment =',var_increamentId);
    PREPARE stml FROM @asql;
    EXECUTE stml;
      

  2.   

    [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'var_increamentId;
    commit;
    end' at line 6
      

  3.   

     那还不如直接delete表呢 不要truncate
      

  4.   

    create procedure prc_alter()
    BEGIN
    declare var_increamentId BIGINT DEFAULT 0;
    set var_increamentId := (select max(id) from ia_track_month);
    TRUNCATE table ia_track_month;
    SET @asql=CONCAT('alter table ia_track_month auto_increment =',var_increamentId);
    PREPARE stml FROM @asql;
    EXECUTE stml;

    end;