DELIMITER //
CREATE PROCEDURE insert_pro(uid BIGINT(20),xm VARCHAR(255),bh INT(11))
BEGIN
start TRANSACTION;
SELECT 'id' from zy where id=uid and name=xm and number=bh;
IF 'id' is not null
THEN ROLLBACK;
ELSE
INSERT INTO zy VALUES(uid,xm,bh);
COMMIT;
END IF;
END //
如代码,我想做一个插入前检查的存储过程,即当三个参数都不一样时才能插进去,否则返回。麻烦看一下哪里出错了?if else函数么?
第一次写mysql存储过程,求教,附代码
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 大白是小白 2017-08-23 06:41关注
已解决!
DELIMITER $$
CREATE PROCEDURE insert_pro(IN xm VARCHAR(255),IN bh int(11),IN sd int(11))
BEGIN
DECLARE $existsFlag int DEFAULT 0;
SELECT id INTO $existsFlag from zy where name=xm and number=bh and sid=sd;
IF $existsFlag =0
THEN
INSERT INTO zy(name,number,sid) VALUES(xm,bh,sd);
END IF;
END $$本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作