Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL altera la procedura memorizzata

A volte potrebbe essere necessario modificare la procedura memorizzata o alterare la procedura memorizzata in MySQL. Ecco come modificare la procedura memorizzata utilizzando l'istruzione MySQL ALTER PROCEDURE.

MySQL Alter Stored Procedure

Ecco i passaggi per modificare la procedura memorizzata in MySQL usando l'istruzione ALTER PROCEDURE.

Supponiamo che tu abbia la seguente procedura memorizzata in MySQL.

mysql> DELIMITER //
       CREATE PROCEDURE get_orders()
       BEGIN
       SELECT *  FROM orders;
       END //

      DELIMITER ;

mysql> call get_orders;
+----+------------+--------+----------+
| id | order_date | amount | sequence |
+----+------------+--------+----------+
|  1 | 2020-08-01 |    250 |        1 |
|  2 | 2020-08-02 |    125 |        4 |
|  3 | 2020-08-03 |    300 |        9 |
+----+------------+--------+----------+

Bonus Lettura:MySQL elenca tutte le procedure

Come modificare la stored procedure nella riga di comando di MySQL

Sebbene MySQL fornisca l'istruzione ALTER PROCEDURE, non consente di modificare il corpo oi parametri della procedura memorizzata. Ti permette solo di modificare le caratteristiche della stored procedure

Ecco la sintassi di ALTER PROCEDURE

ALTER PROCEDURE proc_name [characteristic ...]

characteristic: {
    COMMENT 'string'
  | LANGUAGE SQL
  | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
  | SQL SECURITY { DEFINER | INVOKER }
}

Ecco un esempio per aggiungere un commento utilizzando la query ALTER PROCEDURE.

ALTER PROCEDURE get_orders
COMMENT 'test comment';

Bonus Lettura:MySQL Reimposta la password di root

Tuttavia, se si desidera modificare la query, il corpo o i parametri della procedura memorizzata nella riga di comando di MySQL, è necessario DROP PROCEDURE e quindi CREATE PROCEDURE con la nuova definizione. Ecco un esempio per aggiornare la query della stored procedure get_orders definita sopra.

mysql> drop procedure get_orders;

mysql> DELIMITER //
          CREATE PROCEDURE get_orders()
            BEGIN
            SELECT order_date, amount  FROM orders;
            END //
       DELIMITER ;

mysql> call get_orders;
+------------+--------+
| order_date | amount |
+------------+--------+
| 2020-08-01 |    250 |
| 2020-08-02 |    125 |
| 2020-08-03 |    300 |
+------------+--------+

Si spera che ora sia possibile modificare la procedura memorizzata in MySQL.

Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!