it-swarm.com.de

Gibt es eine Alternative zu "Prozedur erstellen oder ersetzen" in MySQL?

Gibt es eine Version von "create or replace procedure" für MySQL? Ich kann dies anscheinend nicht tun oder das Löschen der Prozedur per Skript ausführen, wenn sie vor dem erneuten Kompilieren vorhanden ist, ohne eine Fehlermeldung zu erhalten, dass die gespeicherte Prozedur vorhanden ist.

DELIMITER $$

-- would love to be able to drop procedure if exists db.sp_tmp_90days;  
-- or use "create or replace"

create procedure db.sp_tmp_90days()

BEGIN
drop table db.tmp_90days;

create table db.tmp_90days ( 
    user_name varchar(128), 
    first_name varchar(50), 
    last_name varchar(50), 
    system varchar(10), 
    last_login datetime 
);

alter table db.tmp_90days add index idx_user_name(user_name);
alter table db.tmp_90days add index idx_system(system);
alter table db.tmp_90days add index idx_last_login(last_login);

insert into db.tmp_90days (user_name, first_name, last_name, system, last_login)
    SELECT
        [...]
END $$
19
amatusko

Dies ist die Syntax zum Löschen, falls vorhanden

DROP PROCEDURE IF EXISTS db.sp_tmp_90days;
23
Rohit Gupta