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

MYSQL यदि लेन-देन में कथन त्रुटि उत्पन्न कर रहा है

MySQL IF . कीवर्ड से शुरू होने वाले स्टेटमेंट को नहीं पहचानता है एक वैध SQL कथन के रूप में।

IF स्टेटमेंट केवल एक कंपाउंड स्टेटमेंट के संदर्भ में काम करता है (अर्थात, स्टेटमेंट्स का एक ब्लॉक BEGIN के बीच संलग्न है। और END . वर्तमान में, कंपाउंड स्टेटमेंट केवल एक संग्रहीत प्रोग्राम (संग्रहीत प्रक्रिया, फ़ंक्शन या ट्रिगर) के संदर्भ में समर्थित है।

http://dev.mysql.com/doc/refman /5.5/hi/begin-end.html

परीक्षण के लिए, प्रयास करें...

DELIMITER //

CREATE PROCEDURE usp_test_transaction()
BEGIN
  DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK;
  START TRANSACTION;

  -- whatever DML operations and SELECT statements you want to perform go here

  IF (1=1) THEN
    COMMIT;
  ELSE
    ROLLBACK;
  END IF;
END//

DELIMITER ;

CALL usp_test_transaction;

(नोट:मैं यहां इस बात की वकालत नहीं कर रहा हूं कि लेनदेन को संग्रहीत प्रक्रिया के अंदर संभाला जाए। मेरी व्यक्तिगत प्राथमिकता ऐसा नहीं करना है, और इसके बजाय उच्च स्तर पर लेनदेन को संभालना है। लेकिन ऊपर दिए गए उदाहरण को काम करना चाहिए; मेरा मानना ​​​​है कि MySQL स्टार्ट ट्रांजेक्शन को कॉल करने का समर्थन करता है। , COMMIT और ROLLBACK संग्रहीत कार्यविधि के संदर्भ में।)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डालने के दौरान एक स्ट्रिंग और प्राथमिक कुंजी आईडी को जोड़ना

  2. MYSQL - 66 KBytes की पंक्ति आकार सीमा को कैसे हल करें

  3. MySQL में की-वैल्यू पेयर टेबल से डेटा के साथ एक पंक्ति प्राप्त करना

  4. मैं तालिका में अनावश्यक पंक्तियों का पता कैसे लगा सकता हूं?

  5. PostgreSQL GROUP BY MySQL से अलग है?