बिल्टिन प्रक्रिया संपादक का उपयोग करते समय, MySQL वर्कबेंच कुछ अतिरिक्त कमांड जोड़ता है:
USE `test`; // <----------
DROP procedure IF EXISTS `p2`; // <----------
DELIMITER $$
USE `test`$$ // <----------
CREATE PROCEDURE test.`p2` ()
LANGUAGE SQL
DETERMINISTIC
COMMENT 'Adds "nson" to first and last names in the record.'
BEGIN
SELECT 'Hello World';
END $$
DELIMITER ; // <----------
वे आदेश संग्रहीत कार्यविधियों के सिंटैक्स से कड़ाई से संबंधित नहीं हैं, वे केवल एक वस्तु हैं- अन्य MySQL क्लाइंट (जैसे HeidiSQL या आधिकारिक कमांड लाइन उपयोगिता) उन्हें नहीं जोड़ेंगे। अंतिम सीमांकक परिवर्तन संभवतः एक ही कनेक्शन पर भविष्य के बयानों में समस्याओं से बचने के लिए एक रीसेट है।
क्लाइंट को यह निर्देश देने के लिए कि प्रक्रिया कोड कहां से शुरू और खत्म होता है, आपको सीमांकक बदलने की जरूरत है। समस्या यह है कि प्रक्रिया निकाय सामान्य रूप से SQL कथनों का एक संग्रह है, इसलिए सीमांकक परिवर्तन को छोड़ने से MySQL को लगता है कि आप कथनों की एक श्रृंखला चलाने का प्रयास कर रहे हैं, जिनमें से पहला यह होगा:
CREATE PROCEDURE test.`p2` ()
LANGUAGE SQL
DETERMINISTIC
COMMENT 'Adds "nson" to first and last names in the record.'
BEGIN
SELECT 'Hello World';
DELIMITER $$
. के साथ आप MySQL को बता रहे हैं कि आपका पूरा स्टेटमेंट CREATE
. से जाता है करने के लिए END
. यह सिर्फ वाक्यात्मक चीनी है:DELIMITER
एक SQL कीवर्ड भी नहीं है। उदाहरण के लिए, HeidiSQL एक टेक्स्ट बॉक्स के साथ एक GUI प्रदान करता है जहाँ आप प्रक्रिया का मुख्य भाग लिखते हैं, इस प्रकार आपको DELIMITER वर्कअराउंड की आवश्यकता नहीं होती है।