简单mysql存储过程

1.查询结果赋值到变量  

--  方式 1
DECLARE cnt INT DEFAULT 0;
select count(*) into cnt from test_tbl;
select cnt;
--  方式 2
set @cnt = (select count(*) from test_tbl);
select @cnt;
--  方式 3
select count(*) into @cnt1 from test_tbl;
select @cnt1;

2.调用存储过程

call proc_add_role();

3.删除存储过程

DROP PROCEDURE IF EXISTS `proc_add_role`;

4.简单例子

DELIMITER ;;
CREATE PROCEDURE `proc_add_role`()
BEGIN  
SET @cnt = (select max(role_group_id) from role_group);  
SET @cnt1 = @cnt + 1;-- 最大加1
-- select @cnt;  
INSERT INTO `role_group` VALUES (@cnt1, '审核员', 'shenhe', 1, 6, 1, '0', 0, 1, NOW(), NOW(), 0);

-- 查询数据并插入新的数据表
INSERT INTO sys_user_role_group_r (	role_group_id,	sys_user_id,	identity_id,	identity_instance_id)
SELECT DISTINCT @cnt1,	sur.sys_user_id,	6,	sur.identity_instance_id
FROM
sys_user_role_group_r sur
JOIN role_group_role_r rgr ON sur.role_group_id = rgr.role_group_id
AND rgr.role_id = 51 
WHERE
sur.identity_id = 6;
END
;;
DELIMITER ;
call proc_add_role();
DROP PROCEDURE IF EXISTS `proc_add_role`;

阅读更多

扫码向博主提问

ieflex

非学,无以致疑;非问,无以广识
去开通我的Chat快问
个人分类: mysql
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭