MySQL - ALTER PROCEDURE 语句
MySQL ALTER PROCEDURE 语句
存储过程是存储在 SQL 目录中的子例程,是 SQL 语句的片段。所有可以访问关系数据库(Java、Python、PHP 等)的应用程序都可以访问存储过程。
存储过程包含 IN 和 OUT 参数,或者两者兼有。如果使用 SELECT 语句,它们可能会返回结果集。存储过程可以返回多个结果集。
您可以使用 ALTER PROCEDURE 语句更改过程的特性。
语法
以下是 ALTER PROCEDURE 语句的语法 -
ALTER PROCEDURE procedures_name COMMENT 'string', LANGUAGE SQL;
其中,procedure_name 是您需要修改的过程的名称。
示例
假设我们使用以下 CREATE 语句在数据库中创建了一个名为 Employee 的表 -
CREATE TABLE Employee(Name VARCHAR(255),Salary INT,Location VARCHAR(255));
现在,让我们使用以下查询向 Employee 表中插入一些记录 -
INSERT INTO Employee VALUES ('Amit', 6554, 'Hyderabad'), ('Sumith', 5981, 'Vishakhapatnam'), ('Sudha', 7887, 'Vijayawada');
让我们创建一个名为 myProcedure 的存储过程。在这里,我们将向 Employee 表中插入一列,从用户那里获取值。(通过输入参数)
DELIMITER // Create procedure myProcedure ( IN name VARCHAR(30), IN sal INT, IN loc VARCHAR(45)) BEGIN INSERT INTO Employee(Name, Salary, Location) VALUES (name, sal, loc); END // DELIMITER ;
以下查询修改了过程 myProcedure,它更改/添加了对上述创建的函数的注释 -
ALTER PROCEDURE myProcedure COMMENT 'This is a sample comment';
验证
您可以使用 Show Create Procedure 语句验证修改后的过程,如下所示 -
SHOW CREATE PROCEDURE myProcedure\G;
以下是上述查询的输出 -
************* 1. row ************* Procedure: myProcedure sql_mode: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION Create Procedure: CREATE DEFINER=`root`@`localhost` PROCEDURE `myProcedure`( IN name VARCHAR(30), IN sal INT, IN loc VARCHAR(45)) COMMENT 'This is a sample comment' BEGIN INSERT INTO Employee(Name, Salary, Location) VALUES (name, sal, loc); END character_set_client: cp850 collation_connection: cp850_general_ci Database Collation: utf8mb4_0900_ai_ci 1 row in set (0.07 sec)