先写几个实例玩玩
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;