2010-05-18 11 views
7

मैं एक स्क्रिप्ट है कि बैचों में एक MySQL (InnoDB) तालिका में पंक्तियों की एक गुच्छा को हटा देता है चलाने के लिए कोशिश कर रहा हूँ एक पाश में निम्नलिखित को निष्पादित करके:MySQL कमांड लाइन उपकरण: DELETE से प्रभावित पंक्तियों की संख्या कैसे प्राप्त करें?

mysql --user=MyUser --password=MyPassword MyDatabase < SQL_FILE 

जहां SQL_FILE से हटाने शामिल है ... LIMIT एक्स कमांड।

मुझे इस लूप को तब तक चलाना होगा जब तक कि कोई और मिलान वाली पंक्ति न हो। लेकिन mysql खोल में चलने के विपरीत, उपरोक्त आदेश प्रभावित पंक्तियों की संख्या वापस नहीं करता है। मैंने कोशिश की है -v और -t लेकिन न तो काम करता है। मैं कैसे पता लगा सकता हूं कि बैच स्क्रिप्ट को कितनी पंक्तियां प्रभावित हुईं?

धन्यवाद!

+0

मुझे लगता है कि मैं सिर्फ इस सवाल का जवाब मिला: http://stackoverflow.com/questions/1083866/how-to-get-number -of-पंक्तियों से प्रभावित-while-क्रियान्वित-mysql-क्वेरी-बैश से – ambivalence

उत्तर

13

आप बैच स्क्रिप्ट के अंत में SELECT ROW_COUNT(); जोड़ सकते हैं।

1

यदि आप विकल्प -vv जोड़ते हैं तो यह अधिक वर्बोज़ आउटपुट उत्पन्न करेगा, जिसमें प्रभावित पंक्तियों की संख्या के बारे में जानकारी भी होगी;

mysql -vv --उपयोगकर्ता = MyUser --password = MyPassword MyDatabase < SQL_FILE

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