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

एक्ज़ीक्यूटिव के साथ डेटा मैनिपुलेशन स्टेटमेंट जारी नहीं कर सकता ()

INSERT कथन को निष्पादित करने के लिए आपको executeUpdate() विधि का उपयोग करने की आवश्यकता होगी, जबकि आपको SELECT कथन को निष्पादित करने के लिए executeQuery() विधि का उपयोग करने की आवश्यकता होगी। यह JDBC विनिर्देश द्वारा उनके उपयोगों पर लगाई गई आवश्यकताओं के कारण है:

Statement.executeQuery() :

और Statement.executeUpdate() :

आपका कोड (यहाँ पोस्ट किया गया छद्म कोड) इस तरह दिखना चाहिए:

statement.executeUpdate("INSERT INTO Sessions(id_user) VALUES(1)"); // DML operation
statement.executeQuery("SELECT LAST_INSERT_ID()"); // SELECT operation

और हां, MySQL प्रलेखन दर्शाता है कि AUTO_INCREMENT कॉलम के लिए समान गतिविधि कैसे करें , जो स्पष्ट रूप से आपको चाहिए।

यदि आपको एक ही लेन-देन में दोनों को एक साथ निष्पादित करने की आवश्यकता है, तो एक स्ट्रिंग में एक अर्ध-कोलन के साथ बयान सबमिट करके उन्हें निम्न की तरह अलग करें:

statement.execute("INSERT INTO Sessions(id_user) VALUES(1); SELECT LAST_INSERT_ID() FROM Sessions LIMIT 1;");

तो आपको निष्पादन() विधि का उपयोग करने की आवश्यकता होगी। ध्यान दें, कि यह डेटाबेस और JDBC ड्राइवर द्वारा दिए गए समर्थन पर निर्भर करता है, जो एक ही एक्जीक्यूट () में स्टेटमेंट को एक साथ बैचने के लिए है। यह Sybase और MSSQL सर्वर में समर्थित है, लेकिन मुझे नहीं लगता कि यह MySQL में समर्थित है।



  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. 500 आंतरिक सर्वर त्रुटि?

  3. mysql मान को अज्ञात भागों में विभाजित करना

  4. PHP MySQLi multi_query तैयार कथन

  5. पूरे पृष्ठ को पुनः लोड किए बिना AJAX के साथ क्वेरी डालें