Título: [Resuelto] Crear Indice compuesto (AUTO_INCREMENT(DEL AÑO ACTUAL)+AÑO ACTUAL) Publicado por: LaThortilla (Effort) en 19 Febrero 2015, 23:21 pm Buenas tardes.
Tengo una tabla con id auto increment -------------------------------- ID |fecha_creado ------------------------------- como puedo hacer para que cada ves que haga un INSERT se concatene el año a el index. ASI: 0000/2014 Solución: Crear un Trigger Asi: Código
donde id es varchar(15); Dato que me pareció interesante: el AUTO_INCREMENT no es mas que un MAX(INDEX)...EJ: si se ingresa un id 50 aun que sea en el primer registro el AUTO_INDEX será 51. probado y funcionando Gracias.. cualquier otra solución bienvenida sea.... Gracias. Título: Re: [AYUDA] indices compuestos MYSQL Publicado por: MinusFour en 19 Febrero 2015, 23:59 pm Puedes hacerlo de varias formas, pero si quieres que lo maneje exclusivamente MySQL vas a necesitar usar trigger con INSERT.
Título: Re: [AYUDA] indices compuestos MYSQL Publicado por: LaThortilla (Effort) en 20 Febrero 2015, 00:20 am No manejo muy bien el tema de triggers y procedimientos en mysql pero buscare... tengo que leer un manual :/ ... ni modo..
Si me ayudas solo con esto te lo agradecería ... Código
Título: Re: [AYUDA] indices compuestos MYSQL Publicado por: MinusFour en 20 Febrero 2015, 00:38 am Código Asumiendo que id no es auto_increment y que tienes un campo para fecha para el año y un campo idFecha para el resultado del string concatenado. Título: Re: [AYUDA] indices compuestos MYSQL Publicado por: LaThortilla (Effort) en 20 Febrero 2015, 01:21 am Tengo este trigger funcionando en la base
Código donde ID es auto_increment y IDYEAR es varchar(15) y como resultado al insertar tengo esto Código
que hago mal? Título: Re: [AYUDA] indices compuestos MYSQL Publicado por: MinusFour en 20 Febrero 2015, 01:25 am El campo Id probablemente sea un campo con auto_increment. En la documentacion de MySQL lo explican, el campo aparece hasta despues de la insercion. Con AFTER INSERT tampoco puedes hacer el UPDATE a NEW.
Título: Re: [AYUDA] indices compuestos MYSQL Publicado por: LaThortilla (Effort) en 20 Febrero 2015, 02:26 am El campo Id probablemente sea un campo con auto_increment. En la documentacion de MySQL lo explican, el campo aparece hasta despues de la insercion. Con AFTER INSERT tampoco puedes hacer el UPDATE a NEW. En ese caso tendría que incrementarlo manual mente NO? como podría hacer una consulta y guardarlo en una variable desde el trigger? Título: Re: [AYUDA] indices compuestos MYSQL Publicado por: MinusFour en 20 Febrero 2015, 02:34 am En ese caso tendría que incrementarlo manual mente NO? como podría hacer una consulta y guardarlo en una variable desde el trigger? No es tan sencillo. Como te dije, el campo se asigna despues de la insercion (AFTER) y no en antes (BEFORE) y no puedes actualizar el registro en ese entonces. Porque no en lugar de repetir la informacion haces CONCAT en las consultas. Asi no repites informacion de la tabla: Código
Título: Re: [AYUDA] indices compuestos MYSQL Publicado por: LaThortilla (Effort) en 20 Febrero 2015, 02:50 am No es tan sencillo. Como te dije, el campo se asigna despues de la insercion (AFTER) y no en antes (BEFORE) y no puedes actualizar el registro en ese entonces. Porque no en lugar de repetir la informacion haces CONCAT en las consultas. Asi no repites informacion de la tabla: Código
Necesito este formato por la razón que el index se reinicia cada año :/ Pero te agradezco mucho tu ayuda... Título: Re: [Resuelto] Crear Indice compuesto (AUTO_INCREMENT(DEL AÑO ACTUAL)+AÑO ACTUAL) Publicado por: LaThortilla (Effort) en 20 Febrero 2015, 18:28 pm Solución:
Crear un Trigger Asi: Código
donde id es varchar(15); Cualquier otra solución bienvenida seaa; |