存储过程通过注解的方式支持
/Hint/
CREATE
[DEFINER = user]
PROCEDURE [IF NOT EXISTS] sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
/Hint/
CREATE
[DEFINER = user]
FUNCTION [IF NOT EXISTS] sp_name ([func_parameter[,...]])
RETURNS type
[characteristic ...] routine_body
proc_parameter:
[ IN | OUT | INOUT ] param_name type
func_parameter:
param_name type
type:
Any valid MySQL data type
characteristic: {
COMMENT 'string'
| LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
}
routine_body:
Valid SQL routine statement
和MySQL语法的区别如下,绿色代表增加的部分,也就是hint
+ /Hint/
CREATE
[DEFINER = user]
PROCEDURE [IF NOT EXISTS] sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
+ /Hint/
CREATE
[DEFINER = user]
FUNCTION [IF NOT EXISTS] sp_name ([func_parameter[,...]])
RETURNS type
[characteristic ...] routine_body
proc_parameter:
[ IN | OUT | INOUT ] param_name type
func_parameter:
param_name type
type:
Any valid MySQL data type
characteristic: {
COMMENT 'string'
| LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
}
routine_body:
Valid SQL routine statement
/Hint/ DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name
和MySQL语法的区别如下,绿色代表增加的部分,也就是hint
+ /Hint/
DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name
[/Hint/] CALL sp_name([parameter[,...]])
[/Hint/] CALL sp_name[()]
和MySQL语法的区别如下,绿色代表增加的部分,也就是hint
+ [/Hint/]
CALL sp_name([parameter[,...]])
+ [/Hint/]
CALL sp_name[()]
删除存储过程:
/*!dble:sql=select 1 from account */drop procedure if exists proc_arc;
创建存储过程:
/*!dble:sql=select 1 from account */create procedure proc_arc(userid1 int)
begin
insert into account_arc select * from account where userid=userid1;
update account set arc_flag=true,arc_time=now() where userid=userid1;
end;
调用存储过程:
/*!dble:sql=select 1 from account */call proc_arc(1);