विकास वातावरण के लिए एक MySQL डेटाबेस में सभी तालिकाओं की नवीनतम 1000 पंक्तियों को मैं कैसे डंप कर सकता हूं? - mysql, sql, डेटाबेस, mysqldump, विकास-पर्यावरण

मैं एक हल्का विकास डेटाबेस बनाना चाह रहा हूँ। यदि हाल ही में डाली गई पंक्तियाँ "टी" की आवश्यकता हैं, तो यह एक महान समाधान है:

mysqldump -u root -p -h hostname --single-transaction --opt --where="1 limit 1000" dbname > dump.sql

यह डेटाबेस में प्रत्येक तालिका से पहली 1000 पंक्तियों को डंप करता है।

लेकिन मैं कैसे डंप कर सकता हूं अंतिम प्रत्येक डेटाबेस से 1000 पंक्तियाँ?

यह काफी आसान होगा यदि प्रत्येक टेबल में ए id field (eg. ORDER BY id DESC), लेकिन इस पर गिना नहीं जा सकता।

मान लें कि तालिकाएं 100MM पंक्तियों तक पहुंच सकती हैं। और एक पूर्ण डेटाबेस डंप 10-30GB रेंज में माप सकता है।

उत्तर:

उत्तर № 1 के लिए 1
-- you need to give your rows a row id, and go from there

ALTER TABLE `tablename `    ADD COLUMN `row_id` INT NULL AFTER `some_column`;

update tablename JOIN    (SELECT @curRow := 0) r set [email protected] := @curRow + 1 ;

-- throw the max row id into a variable:

set @max=(select max(row_id) from tablename );

-- delete or select whatever by that variable:

delete from tablename where row_id< @max-1000

संबंधित सवाल
सबसे लोकप्रिय