mysql - 如何更改mysql中的存储过程

标签 mysql

如何在 Mysql更改存储过程

DROP PROCEDURE IF EXISTS sp_Country_UPDATE; 
CREATE PROCEDURE sp_Country_UPDATE 
  ( IN p_CountryId int, 
    IN p_CountryName nvarchar(25), 
    IN p_CountryDescription nvarchar(25), 
    IN p_IsActive bit, 
    IN p_IsDeleted bit ) 
  UPDATE 
    Country 
  SET 
    CountryName = p_CountryName , 
    CountryDescription=p_CountryDescription, 
    IsActive= p_IsActive, 
    IsDeleted=p_IsDeleted 
  WHERE 
    CountryId = p_CountryId ;

如何修改这个存储过程?

最佳答案

如果你的意思是你想编辑程序,那么你不能根据 MySQL 文档:

This statement can be used to change the characteristics of a stored procedure. More than one change may be specified in an ALTER PROCEDURE statement. However, you cannot change the parameters or body of a stored procedure using this statement; to make such changes, you must drop and re-create the procedure using DROP PROCEDURE and CREATE PROCEDURE.

Alter 语法允许您更改“特征”,但不能更改实际过程本身

http://dev.mysql.com/doc/refman/5.0/en/alter-procedure.html

这是创建、更改(评论)然后删除和重新创建的示例:

DROP PROCEDURE myFunc;

DELIMITER //

CREATE PROCEDURE myFunc ()
COMMENT 'test'
BEGIN
SELECT 5;
END //

DELIMITER ;

ALTER PROCEDURE myFunc
COMMENT 'new comment';

CALL myFunc();

DROP PROCEDURE myFunc;

DELIMITER //

CREATE PROCEDURE myFunc ()
COMMENT 'last time'
BEGIN
SELECT 6;
END //

DELIMITER ;

CALL myFunc();

上面的 CALL myFunc() 语句将返回 5,然后返回 6。

查看存储过程会显示“测试”、“新评论”或“上次”的评论,具体取决于您查看过程主体的时间(我不确定如何通过 CLI 查看评论,但我可以在 Navicat 的函数选项卡中查看它们)

关于mysql - 如何更改mysql中的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13970258/

相关文章:

mysql - Beego ORM MySQL : default addr for network '...' unknown

javascript - 像在 mysql 中一样在环回中使用 between

mysql - 无法远程连接MySQL数据库

php - 使用 docker 在 CentO 上设置 PHP-FPM、Nginx、Mariadb

php - 将多个查询数据放入单个 HTML 表(PHP、MySQL)

mysql - 如何使用连接表过滤用户,其中 'blocked' 字段的值为 1、0 或 NULL

MySql 左连接多表查询

sql - 查询不属于特定组的用户? (想使用EXCEPT,但MySQL似乎不支持)

javascript - 在 NodeJS 上分配变量来查询 mysql

android - android fragment 中的 JDBC 不工作?