CREATE DEFINER=`root`@`%` PROCEDURE `del_incoming_pointer`()
BEGIN
/* 定义变量一 */
DECLARE paramId int;
DECLARE paramCode VARCHAR(64);
DECLARE paramTimes varchar(255);
DECLARE paramDevName VARCHAR(255);
DECLARE _done int default 0;
/* 定义光标 */
DECLARE _Cur CURSOR FOR
SELECT id,spacecraft_code,times,devName FROM zt_file_incoming GROUP BY spacecraft_code,times,devName HAVING COUNT(*)>1;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET _done = 1;
/* 打开光标 */
OPEN _Cur;
FETCH _Cur INTO paramId, paramCode, paramTimes, paramDevName;
/* 循环执行 */
WHILE ( _done <> 1) DO
DELETE from zt_file_incoming WHERE id<>paramId and spacecraft_code=paramCode and times=paramTimes and devName=paramDevName;
COMMIT;
/*游标向下走一步*/
FETCH _Cur INTO paramId, paramCode, paramTimes, paramDevName;
END WHILE;
/*关闭光标*/
CLOSE _Cur;
END
paramTimes在数据库中为时间类型在此处需定义为 varchar