存储过程如何防止一条记录重复插入

 关于存储过程本人是个新生,那么该问题也困扰了我很长的时间。本来想到网上去找答案,可是差了很多没有一个是我真正需要的。还得自己想办法搞,不经意间给做了出来。其实很简单就是现在存储过程中用select coutn(*)查询一下有没有该记录,如果有则不进行插入动作,如没有则插入该记录。

例子:    CREATE DEFINER=`emergency`@`%` PROCEDURE `sp_warning_category_insert`(
                               IN warningId INT(11),
                               IN warningName VARCHAR(100),
                               IN warningDescribe VARCHAR(1024),
                               IN cosmosPassportId CHAR(32)

                               )
                             BEGIN
                                     DECLARE cou INT ;
                                     SET cou=(SELECT COUNT(1) FROM tb_data_waring_category WHERE
                                                             CATEGORY_CODE=warningId AND CATEGORY_NAME=warningName
                                                              AND DISCRIPTION=warningDescribe );
                                     IF cou=0 THEN
                                                  INSERT  INTO tb_data_waring_category(
                                                  ID,CREATE_BY,  CREATE_TIME,
                                                 CATEGORY_NAME, CATEGORY_CODE,
                                                  DISCRIPTION)
                                                 VALUES (UUID32(),
                                                 cosmosPassportId,  NOW(),
                                                 warningName, warningId,
                                                 warningDescribe 
                                                  );
                                      END IF; 
                             END$$
 

^_^,给自己加油!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值