Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL:मैं ट्रिगर्स में डिलीमीटर का उपयोग कैसे करूं?

भाग 1

सीमांकक का उपयोग स्रोत वस्तुओं जैसे संग्रहीत कार्यविधि/फ़ंक्शन, ट्रिगर या ईवेंट के लिए किया जाता है। इन सभी वस्तुओं में BEGIN...END खंड के भीतर एक बॉडी-कोड हो सकता है।

MySQL स्क्रिप्ट में सभी स्टेटमेंट को सीमांकक के साथ समाप्त किया जाना चाहिए, डिफ़ॉल्ट ';' है। लेकिन क्या करें यदि स्रोत वस्तु में कुछ कथनों के साथ शरीर है, जैसे, जी:

INSERT INTO table1 VALUES(1);

CREATE PROCEDURE procedure1()
BEGIN
  SET @s = 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
  PREPARE stmt2 FROM @s;
  SET @a = 6;
  SET @b = 8;
  EXECUTE stmt2 USING @a, @b;
END;

INSERT INTO table1 VALUES(2);

कितने बयान? 3 या 8? उत्तर तीन है, क्योंकि स्क्रिप्ट में दो INSERT और एक CREATE PROCEDURE स्टेटमेंट हैं। जैसा कि आप देख सकते हैं, CREATE PROCEDURE में कुछ आंतरिक विवरण भी हैं; हमें MySQL क्लाइंट से कहना चाहिए कि ये सभी स्टेटमेंट (BEGIN...END के अंदर) - ONE स्टेटमेंट का हिस्सा हैं; हम इसे सीमांकक की सहायता से कर सकते हैं:

INSERT INTO table1 VALUES(1);

DELIMITER $$

CREATE PROCEDURE procedure1()
BEGIN
  SET @s = 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
  PREPARE stmt2 FROM @s;
  SET @a = 6;
  SET @b = 8;
  EXECUTE stmt2 USING @a, @b;
END$$

DELIMITER ;

INSERT INTO table1 VALUES(2);

ध्यान दें, जब आपके ट्रिगर में कोई BEGIN...END खंड नहीं है, तो सीमांकक छोड़े जा सकते हैं।

भाग 2

सीमांकक के बिना विवरण को -

. के रूप में पार्स किया जाएगा
CREATE PROCEDURE procedure1()
BEGIN
  SET @s = 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';

के बजाय -

CREATE PROCEDURE procedure1()
BEGIN
  SET @s = 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
  PREPARE stmt2 FROM @s;
  SET @a = 6;
  SET @b = 8;
  EXECUTE stmt2 USING @a, @b;
END


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL इंडेक्स और ऑर्डर

  2. MySQL वर्कबेंच का उपयोग करके MySQL डेटाबेस बैकअप कैसे लें?

  3. MySQL डेटाबेस को एक नए सर्वर पर ले जाएँ

  4. PHP:पीडीओ का उपयोग करके MySQL से छवि पुनर्प्राप्त करें

  5. mysql में केवल तालिका पढ़ें