-- 随机产生字符串
DELIMITER $$
CREATEFUNCTION rand_string(n INT) RETURNSVARCHAR(255)
BEGINDECLARE chars_str VARCHAR(100) DEFAULT'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ';
DECLARE return_str VARCHAR(255) DEFAULT'';
DECLARE i INTDEFAULT0;
WHILE i < n DO
SET return_str =CONCAT(return_str,SUBSTRING(chars_str,FLOOR(1+RAND()*52),1));
SET i = i +1;
END WHILE;
RETURN return_str;
END $$
-- 假如要删除-- drop function rand_string;
-- 用于随机产生区间数字
DELIMITER $$
CREATEFUNCTION rand_num (from_num INT ,to_num INT) RETURNSINT(11)
BEGINDECLARE i INTDEFAULT0;
SET i =FLOOR(from_num +RAND()*(to_num -from_num+1));
RETURN i;
END$$
-- 假如要删除-- drop function rand_num;
创建存储过程
-- 插入员工数据
DELIMITER $$
CREATEPROCEDURE insert_emp(STARTINT, max_num INT)
BEGINDECLARE i INTDEFAULT0;
#set autocommit =0 把autocommit设置成0SET autocommit =0;
REPEAT
SET i = i +1;
INSERTINTO emp (empno, NAME, age, deptid ,create_time) VALUES ((START+i) ,rand_string(6), rand_num(30,50), rand_num(1,10000),DATE_ADD(now(), INTERVAL i SECOND));
UNTIL i = max_num
END REPEAT;
COMMIT;
END$$
-- 删除-- DELIMITER ;-- drop PROCEDURE insert_emp;
-- 插入部门数据
DELIMITER $$
CREATEPROCEDURE insert_dept(max_num INT)
BEGINDECLARE i INTDEFAULT0;
SET autocommit =0;
REPEAT
SET i = i +1;
INSERTINTO dept ( deptname,address,ceo ) VALUES (rand_string(8),rand_string(10),rand_num(1,500000));
UNTIL i = max_num
END REPEAT;
COMMIT;
END$$
-- 删除-- DELIMITER ;-- drop PROCEDURE insert_dept;
-- 批量删除某个表上的所有索引
DELIMITER $$
CREATEPROCEDURE `proc_drop_index`(dbname VARCHAR(200),tablename VARCHAR(200))
BEGINDECLARE done INTDEFAULT0;
DECLARE ct INTDEFAULT0;
DECLARE _index VARCHAR(200) DEFAULT'';
DECLARE _cur CURSORFORSELECT index_name FROM information_schema.STATISTICS WHERE table_schema=dbname AND table_name=tablename AND seq_in_index=1AND index_name <>'PRIMARY' ;
DECLARE CONTINUE HANDLER FORNOT FOUND set done=2 ;
OPEN _cur;
FETCH _cur INTO _index;
WHILE _index<>'' DO
SET@str= CONCAT("drop index ",_index," on ",tablename );
PREPARE sql_str FROM@str ;
EXECUTE sql_str;
DEALLOCATEPREPARE sql_str;
SET _index='';
FETCH _cur INTO _index;
END WHILE;
CLOSE _cur;
END$$
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY