CREATE DEFINER=`root`@`%` PROCEDURE `iname`(IN iname varchar(50))
BEGIN
 DECLARE EXIT HANDLER for SQLWARNING
   BEGIN
   insert into isns_user_details(manner) values(iname);
   END;
END

解决方案 »

  1.   

    建表isns_user_details语句 是什么,怎样调用的,有无提示
      

  2.   

    [SQL] CALL iname('zhaorr');
    受影响的行: 0
    时间: 0.000ms
      

  3.   

    在SP中加入SHOW WARNINGS
    看看提示
      

  4.   

    加入show warnings ,显示三个字段,内容null
      

  5.   

    去掉SP中的DECLARE EXIT HANDLER for SQLWARNING,运行,提示什么
      

  6.   

    BEGIN
       insert into isns_user_details(manner) values(iname);
    END
    这样调用就没问题
    我不会写错误异常,求帮助
      

  7.   

    去掉SP中的DECLARE EXIT HANDLER for SQLWARNING,运行,提示什么
      

  8.   

    去掉SP中的DECLARE EXIT HANDLER for SQLWARNING,运行,提示什么
    执行没任何问题,插入数据正常
      

  9.   

     insert into isns_user_details(manner) values(iname);
    直接在MYSQL命令行下运行,看看提示,iname中的值用具体的数值,
    建表isns_user_details语句 是什么
      

  10.   

    mysql> insert into isns_user_details (manner) values('www');
    Query OK, 1 row affected (0.00 sec) isns_user_details | CREATE TABLE `isns_user_details` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `user_id` int(11) NOT NULL DEFAULT '0',
      `type_value_note` varchar(100) DEFAULT NULL',
      `type_value` varchar(10) DEFAULT NULL,
      `type` int(11) NOT NULL DEFAULT '0',
      `value` float(11,2) NOT NULL DEFAULT '0.00',
      `old_value` float(11,2) NOT NULL DEFAULT '0.00' ,
      `new_value` float(11,2) NOT NULL DEFAULT '0.00',
      `manner` varchar(50) DEFAULT NULL',
      `manner_note` varchar(100) DEFAULT NULL',
      `add_time` int(11) NOT NULL DEFAULT '0',
      `action_note` varchar(255) DEFAULT NULL ,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 我只是用这个表实验的
      

  11.   

    我找到一种解决方法
     BEGIN
    DECLARE EXIT HANDLER FOR SQLWARNING
      BEGIN
       insert into isns_user_details(manner) values(iname);
      END;

     insert into isns_user_details(manner) values(iname);
    END
    这样调用就没问题,我想红色内容应该是不执行的,只执行下面的,但真正是为什么还不懂
      

  12.   

    CREATE DEFINER=`root`@`%` PROCEDURE `iname`(IN iname varchar(50))
     BEGIN
      DECLARE EXIT HANDLER for SQLWARNING
       
        insert into isns_user_details(manner) values(iname);
        
     END
      

  13.   

    CREATE PROCEDURE `insertIname`(IN iname VARCHAR(50))
    BEGIN 
    INSERT INTO isns_user_details(manner) VALUES (iname);
    END
      

  14.   

    我知道这样可以,但想捕获异常,现在大概知道怎么回事了
     BEGIN
    DECLARE EXIT HANDLER FOR SQLWARNING
      BEGIN
       insert into isns_user_details(manner) values(iname);//当执行主体出现异常时执行的语句
      END;
     insert into isns_user_details(manner) values(iname);//执行主体
    END
    如果理解错误请指教