存储过程以及函数

先写几个实例玩玩

SELECT * from db_user;

delimiter //
create procedure login(in uname varchar(20),in pwd varchar(20))
begin
DECLARE upassconfirm varchar(20);
SELECT password into upassconfirm  from db_user where username = uname;
if upassconfirm=pwd THEN
    SELECT "登录成功";
ELSEIF upassconfirm is NULL THEN
    SELECT "用户名不存在";
ELSEIF upassconfirm !=pwd THEN
    SELECT "密码不正确";
end if;
end;
//
delimiter ;



delimiter //
create procedure login(in uname varchar(20),in password varchar(20))
begin
DECLARE upassconfirm varchar(20);
SELECT password into upassconfirm from db_user where username=uname;-- 如果什么都查询不出来,这赋值的时候会为null
if upassconfirm=password then
    SELECT "登录成功";
ELSEIF upassconfirm is NULL then
    SELECT "用户名不正确";
ELSEIF upassconfirm != password then
    SELECT "密码不正确";
end if;
end;
//
delimiter ;

CALL login("admin3","admin")
set global log_bin_trust_function_creators=TRUE;
delimiter //
CREATE FUNCTION namespace()
RETURNS char(50)
return (SELECT username from db_user where username="admin");
//
delimiter ;

SELECT namespace();
CREATE table t (s1 int ,PRIMARY key (s1))

delimiter //

create PROCEDURE handlerdemo()
BEGIN
    DECLARE CONTINUE HANDLER for SQLSTATE "23000" set @x2 = 1;
    SET @x=1;
    INSERT INTO t VALUES (1);
    set @x=2;
    INSERT INTO t VALUES (1);
    set @x=3;
    END;
//
delimiter ;

CALL handlerdemo()
SELECT @x;




猜你喜欢

转载自blog.csdn.net/ying62506799/article/details/80772384