mysql中存储过程

    xiaoxiao2021-03-25  57

    DELIMITER,简单解释下这个命令的用途,在MySQL中每行命令都是用“;”结尾,回车后自动执行,在存储过程中“;”往往不代表指令结束,马上运行,而DELIMITER原本就是“;”的意思,因此用这个命令转换一下“;”为“//”,这样只有收到“//”才认为指令结束可以执行

    查看myql中已经存在的存储过程:

    show procedure status;

    查看某个存储过程:

    show create procedure 存储过程名字;

    存储过程示例:

    create table p_user(       id int primary key auto_increment,       name varchar(10),     sex char(2) );  insert into p_user(name,sex) values('A',"男");   insert into p_user(name,sex) values('B',"女");   insert into p_user(name,sex) values('C',"男");   -- 创建存储过程(查询得到男性或女性的数量, 如果传入的是0就女性否则是男性) DELIMITER $ CREATE PROCEDURE mybatis.ges_user_count(IN sex_id INT, OUT user_count INT) BEGIN   IF sex_id=0 THEN SELECT COUNT(*) FROM mybatis.p_user WHERE p_user.sex='女' INTO user_count; ELSE SELECT COUNT(*) FROM mybatis.p_user WHERE p_user.sex='男' INTO user_count; END IF; END  $ -- 调用存储过程 DELIMITER ; SET @user_count = 0; CALL mybatis.ges_user_count(1, @user_count); SELECT @user_count;

    转载请注明原文地址: https://ju.6miu.com/read-39010.html

    最新回复(0)