文档章节

MySql存储过程:查询数据库里每个表的最大id值

超龍
 超龍
发布于 2017/09/06 09:02
字数 277
阅读 7
收藏 0
点赞 0
评论 0

先创建一个表来保存每个表的最大id值

CREATE TABLE table_max_id` (
`tablename` varchar(60) DEFAULT NULL,
`max_id` int(11) DEFAULT NULL
);

存储过程如下:

CREATE PROCEDURE get_all_max_ids(IN data_name varchar(50))
BEGIN

— 本存储过程实现查询库里的每个表的id最大值并写入到table_max_id表。本存储过程只适用于MySql数据库,表的主键名称需要是id
— 需要定义接收游标数据的变量
DECLARE tb_name varchar(50);
DECLARE done boolean default 0;

— 游标
DECLARE cur CURSOR FOR SELECT table_name
FROM information_schema.columns WHERE table_schema = data_name AND column_name =’id’ ORDER BY table_name DESC;

— 将结束标志绑定到游标
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

TRUNCATE table_max_id; — 清空数据库表
— 打开游标
OPEN cur;

— 开始循环
REPEAT
— 提取游标里的数据,这里只有一个,多个的话也一样;
FETCH cur INTO tb_name;
— 查询单个表的id最大值并插入表
set @sql=concat(‘INSERT INTO table_max_id(tablename, max_id) SELECT \”, tb_name, ‘\’, (SELECT MAX(id) FROM ‘, tb_name, ‘)’);
PREPARE stmt1 FROM @sql;
EXECUTE stmt1 ;
DEALLOCATE PREPARE stmt1;
until done end repeat;
— 关闭游标
CLOSE cur;

END;

调用方法:call get_all_max_ids(‘数据库名称’);

© 著作权归作者所有

共有 人打赏支持
超龍
粉丝 1
博文 30
码字总数 8618
作品 0
朝阳
用存储过程&DataFactory准备测试数据

假设我们有以下2张表: student , detail_info 。(MySQL版本) 其他detailinfo的外键是name (也就是说detailtail 中name的值要在student中有) 现在准备需要往这两张表中插入数据供测试时使...

小强测试帮 ⋅ 03/06 ⋅ 0

Mysql 中的blob相关问题

一、MySQL BLOB 类型介绍 MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。BLOB类型实际是个类型系列(TinyBlob、Blob、MediumBlob、LongBlob)...

文文1 ⋅ 2015/09/08 ⋅ 0

MySQL基础教程之存储过程

存储过程 存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批件,虽然它们的作用不仅限于批处理。 在我看来, 存储过程就是有业务逻辑和流程的集合, 可以...

阿泽Aze ⋅ 2017/11/15 ⋅ 0

SQL(结构化查询语句)

SQL概述 SQL会话 用户利用SQL命令与关系型数据库进行交互时发生的事情,当用户与数据库建立会话时,会话就被创建了。用Connect user@database 命令可以申请连接数据库,用Disconnect命令可以...

寻找爱玩Tom ⋅ 2014/10/06 ⋅ 6

操作MySQL数据库

SQL是什么? SQL是结构化查询语言,这是一种计算机语言,用于存储,操纵和检索存储在关系数据库中的数据。 SQL是关系数据库系统的标准语言。所有关系型数据库管理系统,如MySQL, MS Access, O...

炫维 ⋅ 2017/09/15 ⋅ 0

新手MySQL工程师必备命令速查手册

作者介绍 MySQL的基本操作可以包括两个方面:MySQL常用语句如高频率使用的增删改查(CRUD)语句和MySQL高级功能,如存储过程、触发器、事务处理等。而这两个方面又可以细分如下: 1、MySQL常...

DBAplus社群 ⋅ 05/17 ⋅ 0

mysql5.7中的sys表详解(转)

在说明系统数据库之前,先来看下MySQL在数据字典方面的演变历史: MySQL4.1 提供了information_schema 数据字典。从此可以很简单的用SQL语句来检索需要的系统元数据了。 MySQL5.5 提供了per...

Sheamus ⋅ 2016/09/21 ⋅ 0

数据库入门(二)

1.数据约束 a.默认值约束 默认值(default) CREATE TABLE test( NAME VARCHAR(20), gender VARCHAR(2) DEFAULT '男' ) 注:当前没有插入默认值字段的时候,默认值才会起作用 b.非空约束 非空(...

给我妖刀 ⋅ 2017/06/08 ⋅ 0

写SQL要学会使用"执行计划"

能写SQL是程序员的基本功,而能写出性能优异的SQL是优秀程序员的必备技能。 可那些性能好的SQL语句是怎么写出来的?难道他们了解数据库底层的东西吗? 其实了解数据库原理是一方面,更快捷的...

雷神雨石 ⋅ 2013/11/26 ⋅ 0

无限级分类实现思路 (组织树的分级管理)

关于该问题,暂时自己还没有深入研究,在网上找到几种解决方案,各有优缺点。 第一种方案: 使用递归算法,也是使用频率最多的,大部分开源程序也是这么处理,不过一般都只用到四级分类。这种...

bengozhong ⋅ 2016/09/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

DevOps 资讯 | PostgreSQL 的时代到来了吗 ?

PostgreSQL是对象-关系型数据库,BSD 许可证。拼读为"post-gress-Q-L"。 作者: Tony Baer 原文: Has the time finally come for PostgreSQL?(有删节) 近30年来 PostgreSQL 无疑是您从未听...

RiboseYim ⋅ 14分钟前 ⋅ 0

Cube、Cuboid 和 Cube Segment

1.Cube (或Data Cube),即数据立方体,是一种常用于数据分析与索引的技术;它可以对原始数据建立多维度索引。通过 Cube 对数据进行分析,可以大大加快数据的查询效率 2.Cuboid 在 Kylin 中特...

无精疯 ⋅ 52分钟前 ⋅ 0

github太慢

1:用浏览器访问 IPAddress.com or http://tool.chinaz.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址 2:/etc/hosts文件中添加如下格式(IP最好自己查一...

whoisliang ⋅ 53分钟前 ⋅ 0

非阻塞同步之 CAS

为解决线程安全问题,互斥同步相当于以时间换空间。多线程情况下,只有一个线程可以访问同步代码。这种同步也叫阻塞同步(Blocking Synchronization). 这种同步属于一种悲观并发策略。认为只...

长安一梦 ⋅ 今天 ⋅ 0

云计算的选择悖论如何对待?

人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云计算为...

linux-tao ⋅ 今天 ⋅ 0

Redis 注册为 Windows 服务

Redis 注册为 Windows 服务 redis 注册为 windows 服务相关命令 注册服务 redis-server.exe –service-install redis.windows.conf 删除服务 redis-server –service-uninstall 启动服务 re......

Os_yxguang ⋅ 今天 ⋅ 0

世界那么大,语言那么多,为什么选择Micropython,它的优势在哪?

最近国内MicroPython风靡程序界,是什么原因导致它这么火呢?是因为他功能强大,遵循Mit协议开源么? 错!因为使用它真的是太舒服了!!! Micropython的由来,这得益于Damien George这位伟大...

bodasisiter ⋅ 今天 ⋅ 0

docker 清理总结

杀死所有正在运行的容器 docker kill $(docker ps -a -q) 删除所有已经停止的容器(docker rm没有加-f参数,运行中的容器不会删掉) docker rm $(docker ps -a -q) 删除所有未打 dangling 标...

vvx1024 ⋅ 今天 ⋅ 0

关于学习

以前学车的时候,教练说了这样的一句话:如果一个人坐在车上一直学,一直学,反而不如大家轮流着学。因为一个人一直学,就没有给自己留空间来反思和改进。而轮流着学的时候大家下来之后思考上...

mskk ⋅ 今天 ⋅ 0

压缩工具之gzip-bzip2-xz

win下常见压缩工具:rar zip 7z linux下常见压缩工具:zip gz bz2 xz tar.gz tar.bz2 tar.xz gzip 不支持目录压缩 gzip 1.txt #压缩。执行后1.txt消失,生成1.txt.gz压缩文件 gzip -d 1.txt....

ZHENG-JY ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部