怎样得到mysql存储过程多条语句的结果集

怎样得到mysql存储过程多条语句的结果集,第1张

存储过程经常需要返回多个结果集。 Mysql 中直接用 select 即可返回结果集。而 oracle 则需要使用游标来返回结 果 集。这一点 Mysql 相对比较方便,如下代码即可实现输出两个结果集:

CREATE PROCEDURE test_proc_multi_select()

BEGIN

select * from testproc

select * from testproc where id=1

END

java 中利用循环,即可获取结果集数据:

con = MConnection.getConn()

String sql = "{call test_proc_multi_select()}"

cs = con.prepareCall(sql)

boolean hadResults = cs.execute()

int i = 0

while (hadResults) {

System.out.println("result No:----" + (++i))

ResultSet rs = cs.getResultSet()

while (rs != null &&rs.next()) {

int id1 = rs.getInt(1)

String name1 = rs.getString(2)

System.out.println(id1 + ":" + name1)

}

hadResults = cs.getMoreResults()// 检查是否存在更多结果集

}

mysql 关于数据库查询后返回的结果集

少使用一个函数:

$sql = "select * from aboutus where abid = '1'"

$result = mysql_query($sql)

echo mysql_error()//如果数据库语句有错,这里会输出

echo "<pre>"

while($re = mysql_fetch_array($result))

{

print_r($re)

}

我们通过 performance_schema 观察了 memory 引擎内存分配,由此推算了内部临时表的内存占用情况。

MySQL 在其他元数据中,诸如 information_schema.INNODB_TEMP_TABLE_INFO 中,并不展示内部临时表的信息,如图:

另外值得注意的是:memory 引擎会多划分出不少空间,比如本例中我们的数据是 300025 行 * 4 字节 =~ 1.2M,而引擎分出了 4M 多的内存来进行存储。

因此如果进行估算时,需要将数据量乘以一个较大的系数,才能准确估算。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6151151.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存