mysql 函数和存储过程demo
来源:互联网 发布:淘宝加盟开店 编辑:程序博客网 时间:2024/05/21 23:01
使用存储过程时,需要转换结束符,这样执行不会报错,如下
mysql>DELIMITER &&
然后在写下面语句
DROP PROCEDURE IF EXISTS p_test1 &&
CREATE procedure p_test1(in parm1 int,out count_sum int)
BEGIN
select count(*) into count_sum from user where id> parm1;
END &&
执行完过程后,如果想要恢复原来分号结尾的执行方式,就再调用一次,如下:
mysql> DELIMITER ;
这样话调用存储存储过程就可以使用分号结尾执行了。
call p_test1(100,@test_s);
如果还是上面&&结尾的话,就还需要转换。
drop procedure if exists sp4 &&
create procedure sp4(inout p4 int)
begin
if p4 = 4 then
set @pg = 400;
else
set @pg = 500;
end if;
select @pg;
end&&
set @pp=4&&
call sp4(@pp)&&
------------------------------------------------------------------------------------------------
下面我换了一种结尾符来标明结束
DELIMITER $$
DROP PROCEDURE IF EXISTS test_sp1 $$
CREATE PROCEDURE test_sp1 (out error int)
BEGIN
DECLARE
t_error INTEGER DEFAULT 0 ; DECLARE
CONTINUE HANDLER FOR SQLEXCEPTION
SET t_error = 1 ; START TRANSACTION ;
insert into person(name,sex) values('0',10);
insert into person(name,sex) values('0',1111);
IF t_error = 1 THEN
set error=t_error;
ROLLBACK ;
ELSE
set error=0;
COMMIT ;
END
IF ;
END $$
DELIMITER ;
insert into person(name,sex) values('0',0);
call test_sp1(@error);
select @error;
------------------------------------------------------------------------------------------------
DELIMITER $$
DROP FUNCTION IF EXISTS `wesource`.`getdate`$$
CREATE FUNCTION `wesource`.`getdate`(id_1 int) RETURNS varchar(255)
BEGIN
DECLARE x VARCHAR(255) DEFAULT '';
DECLARE gdate datetime DEFAULT NULL;
select ctime into gdate from messages where id= id_1;
SET x= date_format(gdate,'%Y年%m月%d日%h时%i分%s秒');
RETURN x;
END $$
DELIMITER ;
select getdate(1);
------------------------------------------------------------------------------------------------
DELIMITER $$
DROP PROCEDURE IF EXISTS test_sp1 $$
CREATE PROCEDURE `test_sp1`(in sexVla int,out error int)
BEGIN
DECLARE
t_error INTEGER DEFAULT 0 ; DECLARE
CONTINUE HANDLER FOR SQLEXCEPTION
SET t_error = 1 ; START TRANSACTION ;
insert into person(name,sex) values('0',sexVla);
insert into person(name,sex) values('0',sexVla+1);
IF t_error = 1 THEN
set error=t_error;
ROLLBACK ;
ELSE
set error=0;
COMMIT ;
END
IF ;
END $$
DELIMITER
call test_sp1(20,@p);
select @p;
- mysql 函数和存储过程demo
- oracle存储过程和oracle函数demo
- mysql存储过程demo
- mysql存储过程和函数
- mysql存储过程和函数
- Mysql 存储过程和函数
- MySQL-存储过程和函数
- MySQL存储过程和函数
- MySQL存储过程和函数
- Mysql存储过程和函数
- mysql(存储过程和函数)
- MySQL:存储过程和函数
- MySQL 存储过程和函数
- mysql:存储过程和函数
- mysql------存储过程和函数
- MySQL存储过程和函数
- mysql存储过程和函数
- Mysql存储过程和函数
- 【Android】Intent解读
- Java随机生成6位数字
- gvim相关配置 及集成在source insight中
- bzoj 4472: [Jsoi2015]salesman 树形dp
- Action中使用的系统常量--
- mysql 函数和存储过程demo
- 装饰器内部传参的使用
- 关键字想要有一个好的排名细节工作很重要
- Beautifulsoup爬虫步骤
- linux初级学习之系统延迟及定时机制2-3
- 头条校招(今日头条2017秋招真题)
- Java虚拟机-锁与并发(十三)
- AndroidStudio中使用Git-初级篇(一)——从github上传和下载项目
- ip猛刷访问