sql >> Databasteknik >  >> RDS >> Mysql

Hur man tar bort lagrad procedur i MySQL

Ibland kan du behöva släppa proceduren i MySQL eller ta bort proceduren i MySQL eftersom du inte behöver den längre. Så här tar du bort lagrad procedur i MySQL med MySQL DROP PROCEDURE-satsen. Du kan använda den för att släppa alla procedurer i MySQL eller släppa en procedur i MySQL.

Hur man tar bort lagrad procedur i MySQL

Här är stegen för att ta bort lagrad procedur i MySQL med MySQL DROP PROCEDURE-satsen.

Här är syntaxen för MySQL DROP PROCEDURE-satsen

DROP PROCEDURE [IF EXISTS] stored_procedure_name;

I satsen ovan måste du ange namnet på den lagrade proceduren.

Om du försöker ta bort en lagrad procedur som inte finns kommer MySQL att ge ett felmeddelande. Så du kan valfritt använda nyckelordet OM FINNS för att säkerställa att lagrad procedur endast tas bort om den finns.

Bonus Läs:MySQL Ändra användarlösenord

Låt oss säga att du har följande lagrade procedur sample_procedure enligt följande.

DELIMITER $$

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

Bonus Läs:MySQL Cast as Boolean

Här är SQL-satsen för att radera lagrad procedur i MySQL

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

Om du försöker ta bort procedur som inte finns får du följande fel

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

Men om du avbryter proceduren med nyckelordet OM FINNS, kommer du bara att få en varning, inte ett fel.

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

Bonus Läs:MySQL CAST vs BOOLEAN

Hur man släpper alla procedurer i MySQL

MySQL låter dig bara släppa en procedur åt gången. Så om du vill ta bort alla procedurer måste du skapa separata DROP PROCEDURE-satser. Här är en SELECT-sats som skapar en lista med drop-procedursatser. Resultatet är en lista med DROP PROCEDURE-satser, en för varje lagrad procedur i din databas. Använd den dock med försiktighet.

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

Förhoppningsvis kan du nu enkelt ta bort proceduren i MySQL.

Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!

  1. Hur man definierar en primärnyckel för automatisk ökning i PostgreSQL

  2. Vad är anslutningssträngen för localdb för version 11

  3. Hur man aktiverar komprimering på en befintlig tabell i SQL Server (T-SQL)

  4. Hitta och ersätt text i hela tabellen med en MySQL-fråga