Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/12/2013, 00:07
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: trigger truncate, vista parámetro

Hola, (quizas ya lo solucionaste), se me ocurren una alternativa distinta a las propuestas.

Porque no en la tabla "lemas_lemas" agregas una columna que sea "orden_aux", luego en los trigger after [insert/update/delete] pones un codigo como este:

Código MySQL:
Ver original
  1. UPDATE lemas_lemas INNER JOIN (SELECT (@rownum:=(if(@fkant=FKStatus, @rownum+1, 0))) orden_aux, (@fkant:=FKStatus) orden_ant, PKlema
  2. FROM lemas_lemas , (SELECT @rownum:=0, @fkant:=0) aux ORDER BY FKStatus, lema ASC) tmp ON lemas_lemas.PKlema = tmp.PKlema SET lemas_lemas.orden_aux = tmp.orden_aux

En el campo orden_aux tendras entonces un campo ordenado para cada estado de la FKStatus según lema ASC

Si no te alcanza teniedo este campo puedes crear las vistas que necesites ya que no nesesitaras usar parametros ni variables, solo te referenciaras a orden_aux.

asi como puse la sentencia te sirve para cualquier FKStatus, si quieres que solo sea para el caso articular de 5 quedaria asi:

Código MySQL:
Ver original
  1. UPDATE lemas_lemas INNER JOIN (SELECT (@rownum:=(if(@fkant=FKStatus, @rownum+1, 0))) orden_aux, (@fkant:=FKStatus) orden_ant, PKlema
  2. FROM lemas_lemas , (SELECT @rownum:=0, @fkant:=0) aux ORDER BY lema ASC WHERE FKStatus = 5) tmp ON lemas_lemas.PKlema = tmp.PKlema SET lemas_lemas.orden_aux = tmp.orden_aux

saludos
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios