MySQL 关于zero rows fetched, selected, or processed
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET t_error = 1;
//实例如下
DECLARE t_error INTEGER DEFAULT 0; declare flag int DEFAULT 1; declare c_switcher varchar(50); declare c_mac varchar(20); declare c_port varchar(20); declare cur_tmp CURSOR for select Switch as switchermac,`Port`,(select `Name` from SwitchBasicInfo where Mac=switchermac) as switcher from VlanBindDefaultSwtich where VlanId=c_vlanid; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET t_error = 1; DROP TABLE IF EXISTS tmp_table; create temporary table tmp_table( vlanid int not null, switchername1 varchar(50), switchmac1 varchar(20), port1 varchar(20), switchername2 varchar(50), switchmac2 varchar(20), port2 varchar(20)); open cur_tmp; FETCH cur_tmp into c_mac,c_port,c_switcher; WHILE t_error<>1 DO if flag=1 THEN insert into tmp_table(vlanid,switchername1,switchmac1,port1) values(c_vlanid,c_switcher,c_mac,c_port); set flag=0; else UPDATE tmp_table set switchername2=c_switcher,switchmac2=c_mac,port2=c_port where vlanid=c_vlanid; end if; FETCH cur_tmp into c_mac,c_port,c_switcher; END WHILE; close cur_tmp; SELECT * from tmp_table; END

浙公网安备 33010602011771号