DROP procedure IF EXISTS `vn2008`.`clean`; DELIMITER $$ CREATE DEFINER=`root`@`%` PROCEDURE `vn2008`.`clean`(IN `v_full` TINYINT(1)) proc: BEGIN DECLARE v_date DATETIME; DECLARE v_date18 DATETIME; DECLARE v_date26 DATETIME; DECLARE v_date8 DATE; DECLARE v_date6 DATE; DECLARE v_date3Month DATE; DECLARE vDate2000 DATE; DECLARE vRangeDeleteTicket INT; DECLARE strtable varchar(15) DEFAULT NULL; DECLARE done BIT DEFAULT 0; SET v_date = TIMESTAMPADD(MONTH, -2, CURDATE()); SET v_date18 = TIMESTAMPADD(MONTH, -18,CURDATE()); SET v_date26 = TIMESTAMPADD(MONTH, -26,CURDATE()); SET v_date3Month = TIMESTAMPADD(MONTH, -3, CURDATE()); SET v_date8 = TIMESTAMPADD(DAY, -8,CURDATE()); SET v_date6 = TIMESTAMPADD(DAY, -6,CURDATE()); SET vRangeDeleteTicket = 60; DELETE FROM cdr WHERE calldate < v_date; DELETE FROM Monitoring WHERE ODBC_TIME < v_date; DELETE FROM Conteo WHERE Fecha < v_date; DELETE FROM XDiario WHERE FECHA < v_date3Month OR FECHA IS NULL; DELETE FROM mail WHERE DATE_ODBC < v_date; -- DELETE FROM Cajas WHERE CajaFecha < v_date18; DELETE rr FROM Recibos_recorded rr JOIN Recibos r ON rr.Id_Recibos = r.Id WHERE r.Fechacobro < v_date; SELECT MAX(idTickets_dits) INTO @id FROM Tickets_dits WHERE ODBC_DATE < v_date; DELETE FROM Tickets_dits WHERE idTickets_dits <= @id; DELETE FROM expeditions_deleted WHERE odbc_date < v_date26; DELETE FROM Entradas_dits WHERE ODBC_DATE < v_date18; DELETE FROM log_articles WHERE ODBC_DATE < v_date; DELETE FROM Splits WHERE Fecha < v_date18; DELETE ts FROM Tickets_stack ts JOIN Tickets t ON ts.Id_Ticket = t.Id_Ticket WHERE t.Fecha < v_date; DELETE tobs FROM movement_label tobs JOIN Movimientos m ON tobs.Id_Movimiento = m.Id_Movimiento JOIN Tickets t ON m.Id_Ticket = t.Id_Ticket WHERE t.Fecha < v_date; DELETE FROM chat WHERE odbc_date < v_date; DELETE FROM Extractos WHERE Fecha < v_date; DELETE FROM Remesas WHERE `Fecha Remesa` < v_date18; DELETE FROM Stockcontrol WHERE Datestart < v_date18; -- DELETE FROM reference_rate WHERE date < v_date18; DELETE FROM hedera.`order` WHERE date_send < v_date18; -- DELETE FROM Ordenes WHERE odbc_date < v_date18; JGF 2018-12-21 Si estan en un turno no hay que borrarlas. SELECT MAX(inter_id) INTO @id FROM vncontrol.inter WHERE odbc_date < v_date18; DELETE FROM vncontrol.inter WHERE inter_id <= @id; DELETE FROM Entradas_dits WHERE ODBC_DATE < v_date; DELETE FROM cyc_declaration WHERE Fecha < v_date18; DELETE FROM travel_reserve WHERE odbc_date < v_date; -- DELETE FROM syslog.systemevents WHERE odbc_date < v_date8; DELETE FROM cache.departure_limit WHERE Fecha < TIMESTAMPADD(MONTH,-1,CURDATE()); DELETE co FROM Compres_ok co JOIN Compres c ON c.Id_Compra = co.Id_Compra JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada JOIN travel t ON t.id = e.travel_id WHERE t.landing <= v_date; DELETE FROM vn2008.scan WHERE odbc_date < v_date6 AND id <> 1; SET vDate2000 = TIMESTAMPADD(YEAR, 2000 - YEAR(CURDATE()), CURDATE()); IF v_full THEN DELETE t FROM Tickets t LEFT JOIN Tickets_turno tt ON tt.Id_Ticket = t.Id_Ticket WHERE Fecha NOT IN ('2000-01-01','2000-01-02') AND YEAR(Fecha) = 2000 AND ABS(DATEDIFF(Fecha,vDate2000)) > vRangeDeleteTicket AND tt.Id_Ticket IS NULL; DELETE e.* FROM Entradas e LEFT JOIN recibida_entrada re ON e.Id_Entrada = re.Id_Entrada WHERE travel_id IS NULL AND re.Id_Entrada IS NULL; END IF; -- Tickets Nulos PAK 11/10/2016 UPDATE vn2008.Tickets SET empresa_id = 965 WHERE Id_Cliente = 31 AND empresa_id != 965; -- Equipos duplicados DELETE w.* FROM vn2008.workerTeam w JOIN (SELECT id, team, workerFk, COUNT(*) - 1 as duplicated FROM vn.workerTeam GROUP BY team,workerFk HAVING duplicated ) d ON d.team = w.team AND d.workerFk = w.user AND d.id != w.id; -- CAP 29/10/2018 Mantenimiento tabla Movimientos_componentes DELETE mc FROM vn2008.Movimientos_componentes mc JOIN vn2008.Movimientos mv ON mv.Id_Movimiento=mc.Id_Movimiento JOIN vn2008.Tickets t ON t.Id_Ticket= mv.Id_Ticket WHERE t.Fecha