存储过程
概述
本文档主要介绍如何使用平凯数据库的存储过程功能。
存储过程功能开关
tidb_enable_procedure 用于开启或者关闭存储过程功能,改变量的作用域为 global。当设置为 ON 时,允许执行 CREATE、ALTER、DROP PROCEDURE 以及 CALL 命令。当设置为 OFF 时,不允许执行 create procedure、alter procedure、call 命令。
自 v7.1.8 版本开始引入 tidb_enable_sp_param_substitute(默认 OFF)。开启后,支持存储过程本地变量下推;默认情况下,开启 tidb_enable_procedure 后会同时开启 tidb_enable_sp_param_substitute。支持单独关闭 tidb_enable_sp_param_substitute。
创建存储过程
参见创建存储过程语法。
删除存储过程
参见删除存储过程语法。
修改存储过程
参见修改存储过程语法。
调用存储过程
参见调用存储过程语法。
查看存储过程
参见查看存储过程语法。
风险 & 不兼容项
- 平凯数据库存储过程内部不支持 DDL 7.1.8 之前版本
- 存储过程内部
PREPARE语句仅做调试使用,检查还不完善 - 当前存储过程不支持 JSON 数据类型
/*!99999 */注释平凯数据库未实现- 游标暂时存在 OOM 的风险下个版本计划新增落盘功能 7.1.8 之前版本
- limit 中的变量不能在本条语句中修改 7.1.8 之前版本
- 如果
new_collations_enabled_on_first_bootstrap为true,则与 MySQL 8.0 一致,忽略大小写;如果new_collations_enabled_on_first_bootstrap为false,由于平凯数据库的架构问题,所以存储过程名不会忽略大小写。