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

क्या मैं एक INT मान + 1 अपडेट कर सकता हूं और नया मान वापस कर सकता हूं?

सरल उत्तर - नहीं, यह संभव नहीं है।

लंबा उत्तर, हां, यदि आप एक संग्रहीत कार्यविधि का उपयोग करते हैं जो निर्दिष्ट आईडी के लिए मान को बढ़ाता है, तो नया मान प्राप्त करता है और उसे वापस करता है।

मैंने अभी MySQL 5.1.59 के तहत इसका परीक्षण किया है:

CREATE PROCEDURE increment (IN uniqid VARCHAR(255))
BEGIN
   UPDATE `table` SET number = number + 1 WHERE id = uniqid;
   SELECT number FROM `table` WHERE id = uniqid;
END

उपयोग:

CALL increment(uniqid)

यदि एक साथ कई एक्सेस संभव हैं तो आप LOCK . करना चाह सकते हैं तालिका पहले ऑपरेशन की परमाणुता सुनिश्चित करने के लिए - 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. कैसे गतिशील तालिका नाम के साथ एक mysql समारोह लिखने के लिए?

  2. Mysql FROM_UNIXTIME UTC . के रूप में

  3. मैसकल:सामान्य त्रुटि:1366 गलत स्ट्रिंग मान

  4. डेटाबेस में विदेशी कुंजी/प्राथमिक कुंजी के रूप में VARCHAR अच्छा या बुरा?

  5. MySQL ::अल्पविराम से अलग किए गए स्ट्रिंग से चयन करें