CREATE PROCEDURE `Up_MyConcern_Ins`(
 IN  Id_Int ,
 IN  StarConcern_VarC varchar(800), 
 IN  TI_Id_Int,  
 IN  ChannelNo_Int,  
 IN  UserName_VarC varchar(800) ,   
  OUT ReturnValues_Int INT
)
PROC:
BEGINDECLARE IsExists_Int INT;
DECLARE Id_Int  INT;
 DECLARE EXIT HANDLER FOR SQLSTATE'23000' 
BEGIN
SET ReturnValues_Int = 1;
ROLLBACK;
END;SET AUTOCOMMIT = 0;
START TRANSACTION;SET ReturnValues_Int = 0;SELECT COUNT(1) INTO IsExists_Int FROM MyConcern WHERE MC_StarConCern_VarC = StarConCern_VarC;
IF IsExists_Int = 0 THEN 
SET ReturnValues_Int = 2;
ROLLBACK;
LEAVE PROC;
END IF;   
INSERT INTO MyConcern(MC_Id_Int,MC_TI_Id_Int,MC_ChannelNo,MC_UserId_Int,MC_UserName_VarC,MC_StarConcern_VarC)
       VALUES(Id_Int,FN_Id_Int,ChannelNo_Int,UserId_Int,UserName_VarC,StarConcern_VarC);
表MyConcern的插入存储过程,插入前要对TI_Id_Int(在另外一张表里存着) 字段判断,存在可以插入,不存着返回。
怎么修改插入存储过程?

解决方案 »

  1.   

    在原有的基础上修改,现在是插入前要对TI_Id_Int(在另外一张表里存着) 字段判断,存在可以插入,不存着返回
      

  2.   

    SELECT COUNT(1) INTO IsExists_Int FROM MyConcern WHERE MC_StarConCern_VarC = StarConCern_VarC;
    IF IsExists_Int = 0 THEN 
        SET ReturnValues_Int = 2;
        ROLLBACK;
        LEAVE PROC;
    END IF;   
    同样方式对 TI_Id_Int 进行判断。只是表改变为存 TI_Id_Int 字段的表。