为何我的 alter procedure 无法成功呢?官方文档明写着,有 alter procedure 这种语法呀?delimiter //
alter procedure prog2(in v1 int,out v2 decimal(18,2))
begin
select 20 into v1;
select f2
into v2
from tb1
limit 1 offset 0;
end
//
delimiter ;
alter procedure prog2(in v1 int,out v2 decimal(18,2))
begin
select 20 into v1;
select f2
into v2
from tb1
limit 1 offset 0;
end
//
delimiter ;
解决方案 »
- 客户端连不上mysql服务,但是cmd命令下可以
- mysql中奇怪的blob类型,高手请进
- MySQL中是否有类似MSSQL的链接服务器功能?如果没有,则应通过何种功能达到类似效果?
- 高分求个数据库问题
- 关于linux在更改mysql数据库表结构的问题?
- 请问各位的Postgresql源代码是从哪里下载到的阿?
- mysql启动问题
- 两个索引,explain选择的原则?
- MySQL获取锁失败求解-Lock wait timeout exceeded; try restarting transaction
- mysql 导入excel文件有问题
- 求教一个简单sql的问题,请大家看看
- 帮忙优化一下这个mysql的语句,多谢。
ALTER {PROCEDURE | FUNCTION} sp_name [characteristic ...]
characteristic:
{ CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'
这个语句可以被用来改变一个存储程序或函数的特征。在MySQL 5.1中,你必须用ALTER ROUTINE权限才可用此子程序。这个权限被自动授予子程序的创建者。如20.4节,“存储子程序和触发程序的二进制日志功能”中所述, 如果二进制日志功能被允许了,你可能也需要SUPER权限。在ALTER PROCEDURE和ALTER FUNCTION语句中,可以指定超过一个的改变。20.2.3. DROP PROCEDURE和DROP FUNCTION
DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name
这个语句被用来移除一个存储程序或函数。即,从服务器移除一个制定的子程序。在MySQL 5.1中,你必须有ALTER ROUTINE权限才可用此子程序。这个权限被自动授予子程序的创建者。IF EXISTS 子句是一个MySQL的扩展。如果程序或函数不存储,它防止发生错误。产生一个可以用SHOW WARNINGS查看的警告。
CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
那这个 alter procedure 的作用是什么,请再指教,谢谢老师。
上面不是写得很清楚吗?什么东西能通过ALTER {PROCEDURE修改。