大白是小白 2017-08-23 02:15 采纳率: 100%
浏览 862
已采纳

第一次写mysql存储过程,求教,附代码

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函数么?

  • 写回答

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 $$

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作