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

MySQL में लेन-देन-सुरक्षित SEQUENCE का अनुकरण करना

यदि ऑटो-इन्क्रीमेंट आपकी आवश्यकताओं के लिए पर्याप्त नहीं है, तो आप n के साथ एक परमाणु अनुक्रम तंत्र बना सकते हैं इस तरह नामित अनुक्रम:

अपने अनुक्रमों को संग्रहीत करने के लिए एक तालिका बनाएं:

CREATE TABLE sequence (
  seq_name varchar(20) unique not null,
  seq_current unsigned int not null
);

मान लें कि आपके पास तालिका में 'foo' के लिए एक पंक्ति है, तो आप परमाणु रूप से अगली अनुक्रम आईडी इस तरह प्राप्त कर सकते हैं:

UPDATE sequence SET seq_current = (@next := seq_current + 1) WHERE seq_name = 'foo';
SELECT @next;

कोई ताले की आवश्यकता नहीं है। दोनों कथनों को एक ही सत्र में निष्पादित करने की आवश्यकता है, ताकि चयन होने पर स्थानीय चर @next वास्तव में परिभाषित हो।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP से MySQL में बाइनरी डेटा डालने पर bin2hex का उपयोग क्यों करें?

  2. ग्रुप बाय क्लॉज के बिना MySQL एग्रीगेट फंक्शन

  3. JQuery POST के साथ कई <select> तत्व भेजें

  4. क्या =के बजाय MySQL में <=> (शून्य सुरक्षित बराबर ऑपरेटर) का उपयोग न करने का कोई कारण है?

  5. डेटाबेस रिकॉर्ड की गिनती अनावश्यक है?