phpMyAdmin
 sql >> डेटाबेस >  >> Database Tools >> phpMyAdmin

किसी अन्य संग्रहीत दिनचर्या के भीतर से एक TRIGGER नहीं बना सकते -- एक अन्य संग्रहीत दिनचर्या क्या है?

ऊपर दिखाया गया ट्रिगर ठीक है।

संपादित करें: जब आप phpMyAdmin के GUI में एक ट्रिगर बनाते हैं, तो आपको केवल परिभाषा में ट्रिगर का मुख्य भाग दर्ज करना होगा फलक, दूसरे शब्दों में भाग BEGIN...END .

ऐसा इसलिए है क्योंकि phpMyAdmin चतुर होने की कोशिश करने जा रहा है और आपके द्वारा दर्ज किए गए अन्य तत्वों (नाम, तालिका, समय, घटना) के आधार पर आपके लिए ट्रिगर हेडर लिखने जा रहा है।

यहाँ phpMyAdmin में ट्रिगर को परिभाषित करने का सही तरीका है:

अगर आप CREATE TRIGGER... . लिखते हैं शरीर के अंदर शीर्ष लेख, यह MySQL को भ्रमित करेगा क्योंकि यह CREATE TRIGGER... CREATE TRIGGER... BEGIN...END देखेगा . इससे MySQL को लगता है कि आप एक ट्रिगर को परिभाषित कर रहे हैं जिसका पहला स्टेटमेंट CREATE TRIGGER . है ।

आपके मूल प्रश्न के अतिरिक्त मुद्दे के रूप में, मैं ट्रिगर के मुख्य भाग में कुछ बदलावों का सुझाव दूंगा:

CREATE TRIGGER Update_Last_Transit_Status AFTER INSERT ON Delivery 
FOR EACH ROW
BEGIN
  UPDATE Transportation
    INNER JOIN Transit ON Transit.Transportation_ID = Transportation.ID
    INNER JOIN Route ON Transit.ID = Route.Transit_ID
  SET Transportation.Status = 'Dispatched'
  WHERE Route.Delivery_ID = NEW.ID
    AND Transportation.Status = 'In Branch';
END

परिवर्तन:

  • संदर्भ NEW.ID Delivery.ID . के बजाय ।
  • एसक्यूएल-92 का प्रयोग करें JOIN SQL-89 "अल्पविराम शैली" के बजाय सिंटैक्स जुड़ता है।
  • बहु-तालिका का उपयोग करें UPDATE जॉइन के साथ, EXISTS . के बजाय सहसंबद्ध सबक्वेरी के साथ।
  • डबल-कोट्स के बजाय स्ट्रिंग्स के लिए सिंगल-कोट्स का उपयोग करें।
  • UPDATE समाप्त करें अर्धविराम के साथ कथन।



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. phpMyAdmin डेटाबेस निर्यात नहीं कर सकता

  2. phpmyadmin त्रुटि #1862 में लॉगिन नहीं कर सकता - आपका पासवर्ड समाप्त हो गया है

  3. Prestashop पुराने डोमेन को डेटाबेस में बदलने के बाद पुनर्निर्देशित करता है

  4. PhpMyAdmin और Mysql डेटाबेस

  5. वैंप mysqli एक्सटेंशन लोड नहीं कर सकता