本人菜鸟。请教大家个问题。
存储过程中用 select max(xxx) as id from table; 结果集没数据呢。
sql语句直接执行是有数据的。请赐教。下面是代码。DROP PROCEDURE IF EXISTS tripdatatest.pr_InsertTravelss;
CREATE PROCEDURE tripdatatest.`pr_InsertTravelss`()
BEGIN
  DECLARE i INT DEFAULT 0;
  DECLARE travelsID INT DEFAULT 0;
  declare err int default 0;
  declare continue handler for sqlexception set err = 1;
  
  start transaction;
 
  select max(TravelsID) as id from t_travelsinfo;  if err = 0 then
    commit;
  else
    rollback;
  end if;
  
END;

解决方案 »

  1.   

    你怎么判断 结果集没数据?
    在MYSQL中运行,结果如何?
      

  2.   

    先把这个去掉试试,declare continue handler for sqlexception set err = 1;先能正确的执行,再做错误处理的语句
      

  3.   

     犯了低级错误。
    DECLARE travelsID INT DEFAULT 0; 中的travelsID 被mysql认为是 TravelsID ,和字段名冲突。mysql不区分大小写。