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

Sådan slettes lagret procedure i MySQL

Nogle gange skal du muligvis droppe procedure i MySQL eller slette procedure i MySQL, da du ikke har brug for den længere. Her er, hvordan du sletter lagret procedure i MySQL ved hjælp af MySQL DROP PROCEDURE-sætning. Du kan bruge den til at droppe alle procedurer i MySQL eller slippe en procedure i MySQL.

Sådan sletter du lagret procedure i MySQL

Her er trinene til at slette lagret procedure i MySQL ved hjælp af MySQL DROP PROCEDURE-sætning.

Her er syntaksen for MySQL DROP PROCEDURE-sætningen

DROP PROCEDURE [IF EXISTS] stored_procedure_name;

I ovenstående erklæring skal du angive navnet på den lagrede procedure.

Hvis du forsøger at slette en lagret procedure, der ikke eksisterer, vil MySQL give en fejl. Så du kan valgfrit bruge IF EXISTS nøgleordet for at sikre, at den lagrede procedure kun slettes, hvis den eksisterer.

Bonus Læs:MySQL Skift brugeradgangskode

Lad os sige, at du har følgende lagrede procedure sample_procedure som følger.

DELIMITER $$

CREATE PROCEDURE get_orders()
BEGIN
    SELECT *
    FROM orders;
END$$

Bonus Læs:MySQL Cast som Boolean

Her er SQL-sætningen til at slette lagret procedure i MySQL

mysql> DROP PROCEDURE get_orders();
Query OK, 0 rows affected (0.04 sec)

Hvis du prøver at droppe en procedure, der ikke eksisterer, får du følgende fejl

mysql> drop procedure get_orders;
ERROR 1305 (42000): PROCEDURE sample.get_orders does not exist

Men hvis du dropper proceduren ved at bruge IF EXISTS søgeordet, vil du kun få en advarsel, ikke en fejl.

mysql> drop procedure IF EXISTS get_orders;
Query OK, 0 rows affected, 1 warning (0.00 sec)

Bonus Læs:MySQL CAST vs BOOLEAN

Sådan dropper du alle procedurer i MySQL

MySQL giver dig mulighed for kun at droppe én procedure ad gangen. Så hvis du vil slette alle procedurer, skal du oprette separate DROP PROCEDURE-sætninger. Her er en SELECT-sætning, der opretter en liste over drop-procedureudsagn. Resultatet er en liste over DROP PROCEDURE-sætninger, en for hver lagret procedure i din database. Brug det dog med forsigtighed.

SELECT
    CONCAT('DROP ',ROUTINE_TYPE,' `',ROUTINE_SCHEMA,'`.`',ROUTINE_NAME,'`;') as stmt
FROM information_schema.ROUTINES;

Forhåbentlig kan du nu nemt slette 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. PL/SQL:Fejl PLS-00306:forkert antal eller typer af argumenter i kald til udløst for taltabel

  2. Sådan fjerner du MySQL 5.7 fuldstændigt fra Windows

  3. Hvad er CHAR_LENGTH() i MySQL?

  4. ORA-00903:ugyldigt tabelnavn på PreparedStatement