2012-07-13 15 views
9

क्या कोई मुझे डेटाबेस के कॉलम में अंतिम डालने वाले मान के लिए क्वेरी बता सकता है।मैं अपने डेटाबेस में अंतिम सम्मिलित मान कैसे प्राप्त करूं?

समस्या यह है कि ASC या DESC का उपयोग करने के बाद डेटाबेस के आंतरिक पंक्तियों में सम्मिलित मूल्य रखा जा सकता है, इसलिए मैं विधि का उपयोग नहीं कर सकता। अगर किसी के पास समाधान है तो कृपया मुझे बताएं।

उत्तर

12

सम्मिलन समय का ट्रैक रखने के लिए आपको TIMESTAMP डेटा कॉलम का उपयोग करने की आवश्यकता होगी। दुर्भाग्यवश, अंतर्निहित दौड़ की स्थिति के कारण, ऑटो-वृद्धिशील प्राथमिक कुंजी का उपयोग इस मामले में काम नहीं करेगा। बस डेटा कॉलम के रूप में एंट्री टाइमस्टैम्प जोड़ें और अंतिम रिकॉर्ड प्राप्त करने के लिए ORDER BY time_stamp DESC LIMIT 1 के साथ पुनर्प्राप्त करें। क्या तुम सच में बचाव की मुद्रा में महसूस कर रहे हैं, तो है कि मूल INSERT कॉल (अर्थात, WHERE ID = x AND KEY = y)

2

मैं दूसरे @Daniel ली की टिप्पणी के लिए अद्वितीय हैं WHERE खंड में शर्तों में शामिल करना है।

हर लगातार तालिका में है कि मैं बनाने के लिए, मैं निम्नलिखित कॉलम है:

  • आईडी जो पहले कॉलम और ऑटो की संख्या बढ़/पहचान/धारावाहिक स्तंभ
  • CreatedBy है जो उपयोगकर्ता के लिए डिफ़ॉल्ट (" डिफ़ॉल्ट system_user "एसक्यूएल सर्वर में) ताकि मैं जानता हूँ कि जो स्तंभ अद्यतन
  • CreatedAt जो सृष्टि के दिनांक को चूक एसक्यूएल सर्वर में (" डिफ़ॉल्ट getdate())।

(exa सीटी सिंटैक्स डेटाबेस के आधार पर भिन्न होता है।)

दौड़ की स्थिति के अपवाद के साथ, मैं तालिका आदेश से 1 चयन करके "चयन * करके अंतिम प्रविष्टि पंक्ति पा सकता हूं।"

हालांकि ये अतिरिक्त जगह लेते हैं, मैंने पाया है कि वे समय के साथ मुद्दों को हल करने में सक्षम होने के कारण भुगतान से अधिक भुगतान करते हैं।

संबंधित मुद्दे