क्या कोई संपूर्ण पंक्ति के md5() या sha1() को प्राप्त करने के लिए "अर्ध-पोर्टेबल" तरीका है? (या बेहतर, अपने सभी क्षेत्रों द्वारा आदेशित पंक्तियों के पूरे समूह का, यानी order by 1,2,3,...,n
)? दुर्भाग्यवश सभी डीबी PostgreSQL नहीं हैं ... मुझे कम से कम माइक्रोसॉफ्ट एसक्यूएल सर्वर, साइबेस और ओरेकल से निपटना होगा।एक संपूर्ण पंक्ति के MD5 या SHA1 प्राप्त करने के लिए SQL तरीका
आदर्श रूप में, मैं एक एग्रीगेटर (सर्वर पक्ष) रखना चाहता हूं और पंक्तियों के समूहों में परिवर्तनों का पता लगाने के लिए इसका उपयोग करना चाहता हूं। उदाहरण के लिए, कुछ टाइमस्टैम्प कॉलम वाले टेबल में, मैं प्रत्येक माह के लिए एक अद्वितीय हस्ताक्षर स्टोर करना चाहता हूं। तब मैं जल्दी से महीनों का पता लगा सकता हूं जो मेरी आखिरी मुलाकात के बाद बदल गए हैं (मैं ग्रीनप्लम चलाने वाले सर्वर पर कुछ तालिकाओं को दर्पण कर रहा हूं) और उनको दोबारा लोड करें।
मैंने कुछ विकल्प देखे हैं, उदा। Tsql में checksum(*)
(डरावनी: यह बहुत टक्कर-प्रवण है, क्योंकि यह एक्सओआरएस और 32-बिट मानों के समूह पर आधारित है), और hashbytes('MD5', field)
, लेकिन बाद वाले को पूरी पंक्ति पर लागू नहीं किया जा सकता है। और यह मुझे केवल एक एसक्यूएल स्वाद के लिए समाधान प्रदान करेगा जो मुझे सौदा करना है।
कोई विचार? ऊपर वर्णित एसक्यूएल मुहावरों में से केवल एक के लिए, यह बहुत अच्छा होगा।