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

(mysql, php) डेटा डालने से पहले auto_increment फ़ील्ड मान कैसे प्राप्त करें?

जब सम्मिलन किया जाता है, तो डेटाबेस द्वारा ही ऑटोइनक्रिकमेंट मान उत्पन्न होता है; जिसका अर्थ है कि वास्तविक सम्मिलित क्वेरी करने से पहले आप इसे प्राप्त नहीं कर सकते।

आपके द्वारा प्रस्तावित समाधान वह नहीं है जिसका अक्सर उपयोग किया जाता है -- जो होगा :

  • कुछ आधा-खाली डेटा डालें
  • जनरेट किया गया ऑटोइनक्रिकमेंट मान प्राप्त करें
  • उस ऑटोइनक्रिकमेंट मान का उपयोग करके अपनी गणना करें
  • नया / पूरा डेटा रखने के लिए पंक्ति को अपडेट करें -- where में पहले जेनरेट किए गए autoincrement का उपयोग करके update . का खंड क्वेरी, यह पहचानने के लिए कि कौन सी पंक्ति अपडेट की जा रही है।

बेशक, सुरक्षा एहतियात के तौर पर, इन सभी कार्यों को लेन-देन में किया जाना चाहिए (एक "सभी या कुछ नहीं" व्यवहार सुनिश्चित करने के लिए)


छद्म कोड के रूप में:

begin transaction
insert into your table (half empty values);
$id = get last autoincrement id
do calculations
update set data = full data where id = $id
commit transaction


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql ट्रिगर संग्रहीत ट्रिगर पहले से ही कथन द्वारा उपयोग किया जाता है जो संग्रहीत ट्रिगर को लागू करता है

  2. MySQL में सभी संग्रहीत कार्यविधियों को सूचीबद्ध करने के 2 तरीके

  3. परीक्षण के लिए अपने MySQL उदाहरणों को कैसे विफल या क्रैश करें?

  4. पेंटाहो डेटा इंटीग्रेशन और बीए सर्वर टूल्स में MySQL JDBC ड्राइवर्स इंस्टाल करना

  5. PHP/MySQL शून्य मान डालें