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

LAST_INSERT_ID . के आधार पर सशर्त सम्मिलन

आपका दूसरा प्रयास लगभग सही था। आपको IS NOT NULL के साथ NULL मानों की जाँच करनी है। तो उपयोग करें

INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE)
SELECT @EVENT_ID, 'Notes', 'WO#89574' FROM DUAL
WHERE @EVENT_ID IS NOT NULL;  -- instead of != 

या

INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE)
SELECT t.* FROM (
    SELECT @EVENT_ID, 'Notes', 'WO#89574'
) t
WHERE @EVENT_ID IS NOT NULL;  -- instead of != 

पहला काम नहीं कर सकता:

-- THIS DOES NOT WORK
SELECT IF(@EVENT_ID != null, 
    INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...

क्योंकि IF का सिंटैक्स है

कथनों का सशर्त निष्पादन केवल संग्रहीत रूटीन<में ही संभव है /ए> . IF सिंटैक्स संग्रहीत दिनचर्या कुछ इस तरह की अनुमति देगा

IF @EVENT_ID IS NOT NULL THEN
    INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
END IF

आपको उन दोनों सिंटैक्स संस्करणों में अंतर करना होगा।




  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. एसक्यूएल क्वेरी बाध्यकारी चर बनाम उन्हें निर्दिष्ट कर रहा है

  3. mysql . में आरक्षित नाम

  4. पार्स त्रुटि:सिंटैक्स त्रुटि, अनपेक्षित '=' त्रुटि

  5. वस्तु विशेषताओं में पीडीओ FetchObject; PHP में ओओपी