singlestore - 如何在memsql中使用光标变成手?
问题描述
嗨团队我们如何使用游标 memsql,我没有看到在 memesql 过程中使用游标进程的任何代码。还有其他使用游标的过程吗?
解决方案
SingleStore DB(以前称为 MemSQL)有一个函数,您可以通过调用和迭代结果数组中的值COLLECT
来实现只读游标功能。COLLECT
该数组可以向前、向后或以任意顺序处理。
我们的官方文档中有几个示例 SQL 查询的用例。我已将下面的第一个作为参考:
示例 1:将 COLLECT 与静态查询一起使用
在以下示例中,COLLECT
使用了一个查询类型变量,其定义SELECT * from t
是静态的。
DROP DATABASE IF EXISTS memsql_docs_example;
CREATE DATABASE memsql_docs_example;
USE memsql_docs_example;
CREATE TABLE t(id INT, name TEXT);
CREATE TABLE output_log(msg TEXT);
INSERT INTO t VALUES (1, 'red'), (2, 'green'), (3, 'blue');
DELIMITER //
CREATE OR REPLACE PROCEDURE p() AS
DECLARE
qry QUERY(id INT, name TEXT) = SELECT id, name FROM t;
arr ARRAY(RECORD(id INT, name TEXT));
_id INT;
_name TEXT;
BEGIN
arr = COLLECT(qry);
FOR x in arr LOOP
_id = x.id;
_name = x.name;
INSERT INTO output_log VALUES(CONCAT('[', _id, ', ', _name, ']'));
END LOOP;
END //
DELIMITER ;
CALL p();
SELECT * FROM output_log ORDER BY msg;
干杯!
David,教育交付专家 @ SingleStore DB(以前称为 MemSQL)
推荐阅读
- node.js - 如何模拟 ftp 服务器以在 nodeJS 中进行单元测试
- ios - 在不同的屏幕重用xib
- vuejs2 - Vue.js 2 - 如何将数据从子组件传递给父组件
- python - 如何仅使用标准库在 Python 中读取任意图像文件格式(PNG、JPEG、TIFF、BMP)?
- python - 我的概率向量中的负值
- java - 运行活动时 TextInputEditText 错误
- go - 使用 sqlx 选择并获取使用情况
- html - Background-rgba 不适用于简单的代码片段?
- unity3d - 在 Spinner 上同时播放两个动画
- java - errors in main_activity.java file