DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`SP_TEST`$$
CREATE PROCEDURE `lsos_prod`.`SP_TEST`()
BEGIN
    DECLARE EXIT HANDLER FOR SQLEXCEPTION
    BEGIN
        -- 在这里如何获取到错误码(1054)和错误信息(Unknown column 'user_name' in 'field list')?
    END;    /* 
     *  这里degug表不存在'user_name'字段, 所以这里会如下错误:
      *  Error Code : 1054
     *  Unknown column 'user_name' in 'field list'
     */
    SELECT id ,user_name FROM debug;
    

END$$
DELIMITER ;

解决方案 »

  1.   

    SHOW ERRORS 
    or
    SHOW WARNINGS
      

  2.   

    谢谢楼上的回复,不过在存储过程里面好像取不到show errors的信息
      

  3.   

    确实,只有在客户端用MYSQL_ERROR取得,在SERVER只能用SHOW 
      

  4.   

    呵呵,MYSQL SERVER端是取不到的
      

  5.   

    Unknown column 'user_name' in 'field list'这种错误就是书写错误,你检查下就好了,干嘛要扑捉他呢。
    ^^