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

MySQL Alter Stored Procedure

Nogle gange skal du muligvis redigere lagret procedure eller ændre lagret procedure i MySQL. Her er, hvordan du redigerer lagret procedure ved hjælp af MySQL ALTER PROCEDURE-sætning.

MySQL Alter Stored Procedure

Her er trinene til at ændre lagret procedure i MySQL ved hjælp af ALTER PROCEDURE-sætningen.

Lad os sige, at du har følgende lagrede procedure i 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 |
+----+------------+--------+----------+

Bonuslæst:MySQL-liste over alle procedurer

Sådan redigeres lagret procedure i MySQL-kommandolinjen

Selvom MySQL giver ALTER PROCEDURE-sætning, tillader den dig ikke at ændre teksten eller parametrene for den lagrede procedure. Det giver dig kun mulighed for at ændre karakteristika for den lagrede procedure

Her er syntaksen for 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 }
}

Her er et eksempel på, hvordan du tilføjer en kommentar ved hjælp af forespørgslen ÆNDRINGSPROCEDURE.

ALTER PROCEDURE get_orders
COMMENT 'test comment';

Bonus Læs:MySQL Nulstil root-adgangskode

Men hvis du vil ændre forespørgslen, brødteksten eller parametrene for den lagrede procedure i MySQL-kommandolinjen, skal du SLIPPE PROCEDURE og derefter OPRET PROCEDURE med ny definition. Her er et eksempel til at opdatere forespørgslen om get_orders lagrede procedure defineret ovenfor.

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 |
+------------+--------+

Forhåbentlig kan du nu ændre den lagrede procedure i MySQL.

Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!

  1. Jeg skal sende kolonnenavne ved hjælp af variabel i select-sætning i butiksprocedure, men jeg kan ikke bruge dynamisk forespørgsel

  2. slet sqlite-database ved opdatering af ny version af applikationen

  3. Sådan indstiller du tegnsættet og sorteringen af ​​en kolonne i MySQL

  4. Sådan genereres INSERT-sætninger fra en forespørgsel, når du bruger SQLcl (Oracle)