【SQL文档整理系列1】MySQL创建procedure(可以用来造测试数据)

SQL存储过程脚本,可以用来造测试数据,直接往表里插入

delimiter $$  -- 定义定界符为$$

DROP PROCEDURE IF EXISTS wk;  	-- 如果本地已经存在存储过程wk,则进行drop删除
CREATE PROCEDURE wk()			-- 创建存储过程(procedure)
BEGIN

DECLARE tid int;	-- 使用declare声明变量tid的类型为int
DECLARE uid int;

SET tid=1205346;	-- 使用set给变量赋值
SET uid=420000001;
WHILE  tid<2005346 DO		-- 使用while ... do ... end while;命令来创建循环
	INSERT INTO `testEntrust`(`user_id`, `task_id`, `status`, `serial_no`, `task_no`, `bank_serial_no`, `apply_date`, `apply_time`, `client_mobile`, `ext_params`, `version`, `resp_code`, `resp_msg`, `resp_status`, `fail_reason`, `create_time`, `update_time`) VALUES (uid, tid, '9', 'c01d7d543fab3bd787d3141630', '000000004744', '0020004   ', '2020-09-26', '16:10:21', '8e0e90d0fb5c4b055c0e43b55d', NULL, 0, '0', '请求已提交', '3', '', '2020-09-26 10:17:49', '2020-09-26 10:17:49');
	SET tid=tid+1;
	SET uid=uid+1;
END WHILE;

END $$
delimiter ;
CALL wk();

关于delimiter $$

  1. delimiter表示定界符,默认指的是分号;,正常MySQL语句遇到分号后,就会立马执行
  2. 但遇到一大段的命令且包含分号,这时需要整个一起执行(类似函数一样),那么就需要定义其他的定界符,可以是$$或者//
  3. 上边的代码中,首句delimiter $$就是定义定界符为$$,当语句结束时,就可以用$$来结束
  4. 而之后的语句又要恢复使用分号;作为定界符,所以又定义了delimiter ;

创建存储过程的语法

delimiter $$
create procedure p_name(args)
begin 
... 
end $$

如果是要多次执行,需要先清空之前的存储过程,如下

delimiter $$
drop procedure if exists p_name;
create procedure p_name(args)
begin 
... 
end $$

调用存储过程使用call

CALL wk();

SQL语法(变量定义/赋值、循环语句)

  1. SQL需要声明变量类型,使用declare
declare id int;
  1. SQL给变量赋值,使用set,然后用=赋值
set id=1000;
  1. 在每个语句结束时,需要用分号;结束,包括声明变量、赋值的时候
  2. 循环语句如下,while ... do ... end while;
while id<20000 do
	insert ...;
	set id=id+1;
end while
  1. 使用repeat来作为循环
repeat
    INSERT INTO ...; 
    set id = id + 1; 
until id >= 20000 end repeat; 
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
创建一个存储过程(PROCEDURE)在MySQL中,你可以按照以下步骤进行操作: 1. 使用`delimiter`命令来定义定界符,例如`delimiter $$`。 2. 使用`DROP PROCEDURE IF EXISTS`语句来删除已存在的同名存储过程,例如`DROP PROCEDURE IF EXISTS wk;`。 3. 使用`CREATE PROCEDURE`语句来创建存储过程,例如`CREATE PROCEDURE wk() BEGIN ... END`。在`BEGIN`和`END`之间编写存储过程的具体逻辑。 4. 使用`delimiter ;`命令来恢复默认的定界符。 5. 使用`CALL`语句来调用存储过程,例如`CALL wk();`。 请注意,以上步骤中的具体代码示例是根据引用\[2\]中的内容提供的。你可以根据自己的需求修改代码中的表名、字段名和逻辑。 希望以上信息对你有帮助。如果你还有其他问题,请随时提问。 #### 引用[.reference_title] - *1* [MySQL创建数据库指定编码和排序规则,mysql数据库密码重置](https://blog.csdn.net/qq_38161040/article/details/122965934)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【SQL文档整理系列1】MySQL创建procedure(可以用来测试数据)](https://blog.csdn.net/chenlibao0823/article/details/123352047)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【MySQL笔记】存储过程(PROCEDURE)与存储函数(FUNCTION)的创建与使用](https://blog.csdn.net/lijibai_/article/details/124819611)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值