मान लें मैं मेज मिल गया है: एक अपाचे/पीएचपी वेबसाइट के माध्यम सेMySQL: क्या एक AutO_INCREMENT आदेश से बाहर मूल्य उत्पन्न कर सकता है?
CREATE TABLE test (
ID INT AUTO_INCREMENT PRIMARY KEY,
InsertTime DATETIME
) ENGINE = InnoDB;
और,, वेब अनुरोध के जवाब के रूप में, मैं ऐसा करना जारी रखें:
INSERT INTO test (InsertTime) values (NOW());
यह ग्रहण करने के लिए सुरक्षित है कि अगर row1.ID > row2.ID
तो row1.InsertTime >= row2.InsertTime
? या शायद कारकों के कुछ दुर्भाग्यपूर्ण संयोजन के माध्यम से (एक संगत वातावरण में बहु-सीपीयू सर्वर सही संरेखण आदि में बृहस्पति के चंद्रमाओं के साथ) यह असफल हो सकता है?
नोट: मुझे कोई समस्या नहीं है। मैं सॉफ़्टवेयर का एक नया टुकड़ा लिख रहा हूं और सोच रहा हूं कि क्या मैं ID
द्वारा क्रमबद्ध करने के लिए क्रमबद्ध करने पर भरोसा कर सकता हूं (दिनांक NOW()
भी उस कॉलम में डाला जाएगा)।
यह एक समस्या प्रतीत नहीं होता है, बल्कि एक चर्चा है -> एसई प्रोग्रामर के लिए कुछ और? और वह रिकॉर्ड करने के लिए, मैं नहीं देखता कि यह कैसे असफल हो सकता है। –
@saratis - यह नहीं देखते कि यह एक चर्चा कैसे है? यह एक विशिष्ट सवाल है। या तो यह 100% गारंटीकृत काम करता है या यह नहीं करता है। –
हालांकि मुझे लगता है कि यहां 2 अलग-अलग प्रश्न हैं। "क्या कोई आईडी कभी प्रविष्टि आदेश से उत्पन्न हो सकता है" और "क्या आदेश कभी भी डेटाटाइम कॉलम के क्रम से मेल खाने में विफल हो सकता है?" –