क्या MySQL में "Create या replace प्रक्रिया" का विकल्प है?


16

क्या MySQL के लिए "बनाने या बदलने की प्रक्रिया" का एक संस्करण है? मैं ऐसा करने के लिए प्रतीत नहीं कर सकता या प्रक्रिया के छोड़ने की स्क्रिप्ट यदि कोई त्रुटि संदेश प्राप्त किए बिना recompiling करने से पहले मौजूद है जो संग्रहीत कार्यविधि मौजूद है।

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

जवाबों:


20

यह मौजूद होने पर इसे गिराने का वाक्य विन्यास है

DROP PROCEDURE IF EXISTS db.sp_tmp_90days;

3
यह भी उल्लेख कर सकता है कि MySQL के लिए "ड्रॉप-इन प्रतिस्थापन" मारियाडीबी, CREATE OR REPLACE PROCEDURE10.1 संस्करण के बाद से सिंटैक्स का समर्थन करता है ।
dddemon
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.