存储过程例子:
CREATE DEFINER=`root`@`localhost` PROCEDURE `test_new`(IN `vName` varchar(10))
BEGIN
insert into test (Name,CreateTime) values (vName,now());
END
以下是注意事项:
1、DEFINER
DEFINER=`root`@`localhost` 这种声明在执行时是可以去掉的,尤其在手工迁移结构时更加应该去掉。如果利用 Navicat 8 复制数据库结构,那么后面的“用户”@“主机”这种命名一定要在两台主机上都要保持一致。通过 MySQL Administrator 或 Query Browser 或 MYSQL-FRONT 创建的表、视图、存储过程可能会有 `root`@`%` 这种命名。其实 % 就表示 localhost,但在 Navicat 里是识别不出的,所以还得通过 Navicat 创建一个用户,名叫做 root @ % ,这样复制结构时才会成功哦。
2、IN OUT 参数的字段长度
通过 Navicat 创建存储过程时,刚开始会让你填写一个输入输出参数表,可以填 IN/OUT/INOUT 类型、参数名字、数据类型,但不能填写字段长度。这在 MySQL 执行创建存储过程的命令时会出错,就因为没有填写字段长度,只要在编辑器的“定义”底部的“参数”栏里修改一下,把字段长度加上去就可以了。
3、参数名称最好不要与数据表的字段名称重合