Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL ट्रिगर के साथ SIGNAL स्टेटमेंट का उपयोग कैसे करें?

दरअसल, MySQL SIGNAL स्टेटमेंट अप्रत्याशित घटनाओं को संभालने और यदि आवश्यक हो तो एप्लिकेशन से सुव्यवस्थित निकास के लिए एक त्रुटि-संभाल तंत्र है। मूल रूप से, यह हैंडलर को त्रुटि जानकारी प्रदान करता है। इसका मूल वाक्यविन्यास निम्न होगा:

SIGNAL SQLSTATE | condition_value [SET signal_information_item = value_1[, signal_information_item] = value_2, etc;]

यहाँ, SIGNAL कीवर्ड एक SQLSTATE मान या DECLARE CONDITION स्टेटमेंट द्वारा घोषित एक स्थिति नाम है। SIGNAL स्टेटमेंट को हमेशा एक SQLSTATE मान या एक नामित स्थिति निर्दिष्ट करनी चाहिए जिसे SQLSTATE मान के साथ परिभाषित किया गया हो। SIGNAL स्टेटमेंट के लिए SQLSTATE मान में पांच-वर्ण का अल्फ़ान्यूमेरिक कोड होता है। हमें अपना SQLSTATE कोड '00' से शुरू नहीं करना चाहिए क्योंकि ऐसे मान सफलता को इंगित करते हैं और त्रुटि संकेत के लिए मान्य नहीं हैं। यदि हमारा मान अमान्य है, तो एक Bad SQLSTATE त्रुटि होती है। कैच-ऑल त्रुटि संभाल के लिए, हमें '45000' का SQLSTATE मान निर्दिष्ट करना चाहिए, जो "unhandled user-defined exception" को दर्शाता है।

MySQL ट्रिगर के साथ SIGNAL स्टेटमेंट के उपयोग को समझाने के लिए हम निम्न उदाहरण का उपयोग कर रहे हैं जिसमें हम student_age तालिका पर एक BEFORE INSERT ट्रिगर बना रहे हैं। यदि हम 0 से कम आयु दर्ज करने का प्रयास करेंगे तो यह SIGNAL स्टेटमेंट का उपयोग करके एक त्रुटि संदेश देगा।

उदाहरण

mysql> Create trigger before_insert_studentage BEFORE INSERT on student_age FOR EACH ROW BEGIN IF NEW.age<0 then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'age less than 0'; END if; END; //
Query OK, 0 rows affected (0.12 sec)
mysql> Insert into student_age(age, name) values(-10,'gaurav')//
ERROR 1644 (45000): age less than 0

उपरोक्त परिणाम सेट से स्पष्ट है कि यदि हम 0 से कम आयु सम्मिलित करने का प्रयास करेंगे तो यह SIGNAL स्टेटमेंट का उपयोग करके त्रुटि देगा।

  1. - क्या MySQL में SUM() के साथ IF() उपयोग कर सकते हैं?

    हां, MySQL में SUM() के साथ IF() फ़ंक्शन का उपयोग करके आप सशर्त गिनती या योग गणना कर सकते हैं। यह पिवट टेबल, सशर्त एग्रीगेशन, और क्रॉस-टैब रिपोर्ट के लिए शक्तिशाली तकनीक है। उदाहरण तालिका बनाना CREATE TABLE DemoTable (Value INT, Value2 INT); डेटा डालना INSERT INTO DemoTable VALUES (100, 400), (1

  1. - MySQL में WITH ROLLUP का सही उपयोग कैसे करें

    WITH ROLLUP के साथ योग और कुल योग प्राप्त करना WITH ROLLUP का सिंटैक्स: select yourColumnName1, sum(yourColumnName2) from yourTableName group by yourColumnName1 with rollup; पहले टेबल बनाएं: create table DemoTable1622 ( EmployeeCountryName varchar(20), EmployeeSalary int ); Query OK, 0 rows affecte

  1. - MySQL में CURDATE के साथ CONTAINS() का उपयोग कैसे करें? (CONCAT + LIKE का उपयोग करें)

    MySQL में CONTAINS() नहीं है - CONCAT() और LIKE का उपयोग करें MySQL में CONTAINS() फ़ंक्शन नहीं है (यह SQL Server/Full-text खोज में मौजूद है)। स्ट्रिंग में उपस्ट्रिंग खोजने के लिए, LIKE ऑपरेटर के साथ CONCAT() का उपयोग करके डायनामिक पैटर्न बनाएं। वर्तमान तिथि जांचना SELECT CURDATE(); +------------+