Refresh the primary key of the mysql associated table

Source: Internet
Author: User
No details none -- backup database -- mysqldump-hlocalhost-uroot-p123456databasedump. SQL -- initialize interfaceType -- first process selectit_id, count (*) assumfromserver_interfacesgroupbyit_idhavingsum1droptableinterfaces_type; createtableinterf

No details none -- backup database -- mysqldump-h localhost-uroot-p123456 database dump. SQL -- initialize interfaceType -- first process select it_id, count (*) as sum from server_interfaces group by it_id having sum1drop table interfaces_type; create table interf

<无详细内容> <无>
-- Backup database -- mysqldump-h localhost-uroot-p123456 database> dump. SQL -- initialize interfaceType -- first process select it_id, count (*) as sum from server_interfaces group by it_id having sum> 1 drop table interfaces_type; create table interfaces_type (id int (5) not null AUTO_INCREMENT primary key comment 'Primary key, used as the interface id prefix ', type_name varchar (20) not null comment 'interface type name', max_it_id int (11) comment 'maximum Interface id of the interface type ') ENGINE = InnoDB AUTO_INCREMENT = 1 default charset = utf8 COLLATE = utf8_bin; insert into interfaces_type (type_name) select distinct it_type from interfaces; update interfaces_type set max_it_id = id * 10000; drop PROCEDURE resetInterfaceType; delimiter // create procedure resetInterfaceType () incluminid INT; DECLARE maxId INT; SELECT max (id) into maxId from interfaces_type; update interfaces_type set id = id + maxId; SELECT min (id) into minId from interfaces_type; update interfaces_type set id = id-minId + 1; update interfaces_type set max_it_id = id * 10000; END // delimiter; call resetInterfaceType (); drop PROCEDURE resetInterface; delimiter // create procedure resetInterface () BEGINdeclare itType varchar (20); declare beginId int (11 ); declare itCount int (11); declare itId int (11); declare isFinished boolean default false; declare maxItId int (11); declare maxItId2 int (11 ); DECLARE ittCursor cursor for select type_name, max_it_id from nation; DECLARE itCursor cursor for select it_id from interfaces where it_type = itType; declare continue handler for not found set isFinished = true; select max (it_id) into maxItId from interfaces; select max (it_id) into maxItId2 from region; update interfaces set it_id = it_id + maxItId + maxItId2; update server_interfaces set it_id = it_id + maxItId + maxItId2; OPEN ittCursor; required FETCH ittCursor INTO itType, beginId; if not isFinished then begin open itCursor; required fetch itCursor into itId; if not isFinished then begin update interfaces set it_id = beginId where it_id = itId; update server_interfaces set it_id = beginId where it_id = itId; set beginId = beginId + 1; end if; end; until isFinished end repeat; close itCursor; update interfaces_type set max_it_id = beginId + 1 where type_name = itType; set isFinished = false; end if; end; until isFinished end repeat; CLOSE ittCursor; END // delimiter; call resetInterface ();

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.