CREATE PROCEDURE
CREATE PROCEDURE 语句用于在当前数据库中创建存储过程,与 MySQL 中 CREATE PROCEDURE 语句的行为类似。
语法图
- CreateProcedureStmt
-
- procParameters
-
- procParameter
-
- type
-
- ProcedureName
-
- IfNotExists
-
- characteristics
-
- characteristic
-
- SecurityInfo
-
- routineBody
-
- BlockStmt
-
- CaseStmt
-
- simpleCaseList
-
- simpleCase
-
- searchCaseList
-
- searchCase
-
- IfStmt
-
- elseIfList
-
- elseIf
-
- LoopStmt
-
- RepeatStmt
-
- WhileStmt
-
- CloseCur
-
- DeclareVar
-
- varNames
-
- varName
-
- conditionValues
-
- FetchInto
-
- OpenCur
-
- ProcedureSQL
-
- statementList
-
- statement
-
- handler_action
-
- conditionValue
-
平凯数据库不支持以下语法 characteristic:LANGUAGE SQL,[NOT] DETERMINISTIC,{ CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }。
| 参数 | 含义 | 举例 |
|---|
tidb_enable_procedure | 开启或者关闭 tidb 存储过程 | tidb_enable_procedure = ON |
tidb_enable_sp_param_substitute | 是否开启存储过程内部变量查询下推 | tidb_enable_sp_param_substitute=ON |
max_sp_recursion_depth | 存储过程最多支持多少次递归 | max_sp_recursion_depth = 125 |
stored_program_cache | 最多缓存多少个存储过程执行计划 | stored_program_cache = 256 |
i注意
平凯数据库不支持在存储过程中调用 DDL、CALL 语句,在存储过程中使用 prepare 和 execute 处于测试状态,不建议使用。
示例
创建一个存储过程: