很多数据库支持通过函数或存储过程返回多个结果集,比如:
MSSQL:
CREATE PROCEDURE test
AS
SELECT * FROM first_table
SELECT * FROM second_table
MYSQL:
CREATE PROCEDURE test_proc_multi_select()
BEGIN
SELECT * FROM testproc;
SELECT * FROM testproc WHERE id=1;
END;
作为国产数据库领军品牌,Kingbase ES也支持返回多个结果集,并且有多种方式支持。由于Kingbase ES中存储过程不返回值,函数才能指定返回值(这也是Kingbase ES中函数与存储过程的主要区别),因此,要返回多个结果集需要通过函数来返回。
下面以返回两张表的数据为例,详细讲解Kingbase ES中函数如何返回多个结果集:
1.数据准备工作
1)创建测试表FIRST_TABLE
CREATE TABLE FIRST_TABLE(ID INT PRIMARY KEY, INFO TEXT, CRT_TIME TIMESTAMP);
INSERT INTO FIRST_TABLE SELECT GENERATE_SERIES(1,4), MD5(RANDOM()::TEXT),CLOCK_TIMESTAMP();
SELECT * FROM FIRST_TABLE;