六月份工作记录

上一篇 / 下一篇  2008-06-04 18:28:20 / 个人分类:日志

一、关于技术方面

用到数据库的查询比较多,用到子查询。

select floor((1000000-0+1)*rand()+0)
update employee  set employee_pw=
(SELECT FLOOR(100000 + (RAND() * 899999))) where status='A';
select employee_pw from employee ;//这里一定要加(),否则有错,在数据库中生成六位随机数存入数据库中。此操作在MYSQL平台。

关于存诸过程,这个不是很了解,但用了这个例子来记录一下,备以后参考吧。

默认员工自助授权处理说明

1、关联到四个表
self_module(module_id)
self_role(role_id,role_name)
self_module_per4role(role_id,module_id,per)
employee_role(user_id,user_role)

主要处理二个表,要将employee表的employee_id(所有在职员—)插入五条相同的记录到
self_permission (employee_id,department_id,module_id,perm)表中,并保持self_permission表中的module_id,perm相同.
即内容为
employee_id,4,(1,2,3,4),
employee_id,5,(1,2,3,4)
employee_id,6,(1,2,3,4)
employee_id,7,(1,2,3,4)
employee_id,12,(1,2,3,4)

1)用存储过程来处理。此存储过程必须在mysql5以上的版本才可运行。所以将HASE数据库中employee和self_module_per4role二个表
copy出来放在新建的MYSQL5数据库中,运行存诸过程,重新生成self_module_per4role表.再将self_module_per4role表导出脚本再
存入HASE数据库中。

2)将权限关联到员工.
insert into employee_role(user_id) select employee_id from employee where employee_pw!=''and status='A';
//employee表的employee_id(所有在职员工)插入到employee_role(user_id)

update employee_role set role_id='23';

-- Procedures
--
-- DELIMITER $$
--
CREATEDEFINER=`root`@`%` PROCEDURE `selfPerm`()
BEGIN
  DECLARE emp_id INT;
  DECLARE done INT DEFAULT 0;
  DECLARE EmpCur CURSOR FOR SELECT employee_id FROM employee WHERE (employee_pw!='' OR employee_pw IS NULL) AND status='A';
  DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
  OPEN EmpCur;
  REPEAT
    FETCH EmpCur INTO emp_id;
    IF NOT done THEN
      INSERT INTO self_permission (employee_id,department_id,module_id,perm) VALUES (emp_id,'1','4','1,2,3,4');
      INSERT INTO self_permission (employee_id,department_id,module_id,perm) VALUES (emp_id,'1','5','1,2,3,4');
      INSERT INTO self_permission (employee_id,department_id,module_id,perm) VALUES (emp_id,'1','6','1,2,3,4');
      INSERT INTO self_permission (employee_id,department_id,module_id,perm) VALUES (emp_id,'1','7','1,2,3,4');
      INSERT INTO self_permission (employee_id,department_id,module_id,perm) VALUES (emp_id,'1','12','1,2,3,4');
    END IF;
  UNTIL done END REPEAT;
  CLOSE EmpCur;
END$$

--
-- DELIMITER ;
--

 

 


TAG: 日志

 

评分:0

我来说两句

Open Toolbar