Mysql存储过程列类型参考
在PL / SQL中,可以使用TABLE.COLUMN_NAME%类型语法引用过程变量和参数的表列类型 。 这使代码维护更容易。 在mysql存储过程语言中是否有这样的等价物?
哪里需要这个? 考虑下面的插入语句:
INSERT INTO NL_LIST (NAME, EMAIL)
SELECT
NAME,
normalizeEmail(EMAIL)
FROM
RAW_NL_LIST;
为此,我希望能够以下面的方式(大致)定义normalizeEmail:
CREATE FUNCTION normalizeEmail(email RAW_NL_LIST.EMAIL%type)
RETURNS NL_LIST.EMAIL%type
BEGIN
... implementation here
END;
不,您不能自动将表定义中使用的类型与存储过程中的类型相匹配。 您将不得不自己查找表格定义并输入正确的类型。
请参阅:http://dev.mysql.com/doc/refman/5.6/en/create-procedure.html
它在这里说:
CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
CREATE
[DEFINER = { user | CURRENT_USER }]
FUNCTION 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 <<<-- no special magic allowed
....
链接地址: http://www.djcxy.com/p/50261.html