ऑटो वृद्धि आईडी रीसेट कर सकते हैं।
http://community.spiceworks.com/scripts/show/3042-reset-auto-increment-ids
अद्यतन छोटी संभव डेटाबेस में वर्तमान मूल्यों पर आधारित मूल्य के लिए एक डेटाबेस में सभी ऑटो वेतन वृद्धि कॉलम। डेटाबेस को साफ करने के बाद हमें ऐसा करने की ज़रूरत थी।
एक संग्रहीत प्रक्रिया के भीतर एक तैयार वक्तव्य का उपयोग करें:
drop PROCEDURE if exists reset_autoincrement;
DELIMITER //
CREATE PROCEDURE reset_autoincrement (IN schemaName varchar(255))
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE o_name VARCHAR(255);
DECLARE o_table VARCHAR(255);
DECLARE cur1 CURSOR FOR SELECT COLUMN_NAME, TABLE_NAME FROM information_schema.`COLUMNS` WHERE extra LIKE '%auto_increment%' and table_schema=schemaName;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO o_name, o_table;
IF done THEN
LEAVE read_loop;
END IF;
set @qry1 = concat('SELECT MAX(`',o_name,'`) + 1 as autoincrement FROM `',o_table,'` INTO @ai');
PREPARE stmt1 FROM @qry1;
EXECUTE stmt1;
IF @ai IS NOT NULL THEN
SELECT o_name, o_table;
select @qry1;
select @ai;
set @qry2 = concat('ALTER TABLE `',o_table,'` AUTO_INCREMENT = ', @ai);
select @qry2;
PREPARE stmt2 FROM @qry2;
EXECUTE stmt2;
END IF;
END LOOP;
CLOSE cur1;
END //
DELIMITER ;
call reset_autoincrement('my_schema_name');
मेरे प्रश्न के लिए एक सुंदर ठोस जवाब की तरह लगता है! धन्यवाद! – ThinkCode
'ऑब्जेक्ट टैबलेट XYZ AUTO_INCREMENT =' ' मेरे लिए त्रुटि उत्पन्न करें :( – bor
@ T30 आपकी त्रुटि क्या है? – Beetle