博客
关于我
造数存储过程
阅读量:783 次
发布时间:2019-03-25

本文共 1317 字,大约阅读时间需要 4 分钟。

下面将展示如何为测试数据库创建一个表并定义一个加载存储过程的详细步骤。

###.CREATE TABLE语句 ```sqlcreate table test_load(a int,b char(80)) engine=innodb;

说明:

  • 这行语句创建了一个名为test_load的表,其中包含两个字段:
    • a(类型为int),用于存储整数值。
    • b(类型为char(80)),用于存储最大长度为80个字符的文本数据,通常用于字符串或短文本字段。
  • 存储引擎设置为InnoDB,这是一个常用的高性能存储引擎。

###设置分隔符

delimiter ;

说明:

  • 这行语句将默认的分隔符从\\更改为;,使得SQL语句更容易阅读和执行。
  • 在存储程序或函数中,通常会暂时设置为;以便明确区分不同语句的结尾。

###创建存储程序p_load

create procedure p_load(count int unsigned)

说明:

  • 这行语句定义了一个名为p_load的存储程序,接受一个无符号整数参数count
  • 存储程序用于批量加载数据到数据库表中。

###存储程序实现逻辑

begin      declare s int unsigned default 1;      declare c char(80) default repeat('a',80);

说明:

  • declare s int unsigned default 1;:声明变量s,类型为无符号整数,默认值为1。这个变量用于计数循环次数。
  • declare c char(80) default repeat('a',80);:声明变量c,类型为固定长度的字符,字符长度为80,默认值为重复字符'a' 80次形成的字符串。这个字符串会被重复插入到表中。

###执行循环

while s <= count do      insert into test_load select null,c;      set s = s+1;  end while;

说明:

  • while s <= count do:开始一个while循环,继续执行循环体内的语句,直到s的值大于count
  • insert into test_load select null,c;:向表test_load中插入一条新记录,null用于a字段(整数字段),c字段插入默认字符串aaaaaaaaaaaa...(共80个字符)。
  • set s = s+1;:将变量s1,表示已经处理了下一个批次。
  • end while;:结束循环。当s超过count时,循环结束。

###提交并结束存储程序

commit;  end;

说明:

  • commit;:提交事务,这一步非常关键,因为存储程序在未提交之前,数据不会被写入数据库。
  • end;:结束存储程序的定义。
  • 提交后,所有已插入的数据已经被写入表中,数据库 transaction 被确认。

###总结

通过以上步骤,我们成功创建了一个测试表test_load和一个存储程序p_load。存储程序能够根据提供的count参数,向表中批量插入符合ab列定义的数据。

转载地址:http://wtduk.baihongyu.com/

你可能感兴趣的文章
mysql 复杂查询_mysql中复杂查询
查看>>
mYSQL 外键约束
查看>>
mysql 多个表关联查询查询时间长的问题
查看>>
mySQL 多个表求多个count
查看>>
mysql 多字段删除重复数据,保留最小id数据
查看>>
MySQL 多表联合查询:UNION 和 JOIN 分析
查看>>
MySQL 大数据量快速插入方法和语句优化
查看>>
mysql 如何给SQL添加索引
查看>>
mysql 字段区分大小写
查看>>
mysql 字段合并问题(group_concat)
查看>>
mysql 字段类型类型
查看>>
MySQL 字符串截取函数,字段截取,字符串截取
查看>>
MySQL 存储引擎
查看>>
mysql 存储过程 注入_mysql 视图 事务 存储过程 SQL注入
查看>>
MySQL 存储过程参数:in、out、inout
查看>>
mysql 存储过程每隔一段时间执行一次
查看>>
mysql 存在update不存在insert
查看>>
Mysql 学习总结(86)—— Mysql 的 JSON 数据类型正确使用姿势
查看>>
Mysql 学习总结(87)—— Mysql 执行计划(Explain)再总结
查看>>
Mysql 学习总结(88)—— Mysql 官方为什么不推荐用雪花 id 和 uuid 做 MySQL 主键
查看>>