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

Oracle MySQL में समतुल्य अनुक्रम

मैं केवल @Akina और @RickJames के सुझावों को मिलाकर इस समस्या को हल करने में सक्षम था, उनके समर्थन के लिए आप दोनों को धन्यवाद।

create table my_seq(
min_value integer,
Max_value integer,
last_value integer,
increment_by tinyint,
customer_id integer)ENGINE = InnoDB;

यहां ENGINE=InnoDB यह बहुत महत्वपूर्ण है। यह सुनिश्चित करने के लिए कि पढ़ते समय टेबल लेवल लॉकिंग है, मैंने अपना ऐप कोड संशोधित कर दिया है:

Auto-Commit=FALSE

फिर,

//very import to begin the transaction
begin;
select last_number from my_seq where customer_id=? FOR UPDATE;

Read the result in App.

update my_seq set last_number=last_number+1 where customer_id=?;
commit;

यह अद्वितीय sequence number उत्पन्न कर रहा था कई समवर्ती सत्रों के मामले में भी।

मुझे एक और समस्या का सामना करना पड़ा है, कि यह समाधान धीमा हो गया है, जहां मैं अनुक्रम उत्पन्न करता हूं #। मैंने इसे ग्राहक_आईडी को अनुक्रमित करके टेबल लेवल लॉक के बजाय एक पंक्ति स्तर लॉक को सक्षम करके हल किया है।

ALTER TABLE TABLE_NAME ADD INDEX (customer_id);

आशा है कि यह दूसरों की पूरी मदद करेगा।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. modx साइट को सबफ़ोल्डर से रूट फ़ोल्डर में ले जाएँ

  2. प्रत्येक सेमेस्टर में टर्नओवर की गणना कैसे करें

  3. ऑपरेशनल एरर:(1045, उपयोगकर्ता 'राजेंद्र' @ 'लोकलहोस्ट' के लिए एक्सेस अस्वीकृत (पासवर्ड का उपयोग करके:नहीं))

  4. जब मैं MAX (अपडेट_डेट) का चयन करता हूं तो अन्य कॉलम के लिए गलत मान प्राप्त करना

  5. ORDER_BY दिनांक LIMIT 1