Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Insertar default de campo date a fecha posterior

Estas en el tema de Insertar default de campo date a fecha posterior en el foro de Mysql en Foros del Web. Buen dia , tengo una tabla llamada vales en la cual tengo un campo date llamado vigencia , en el tengo que insertar una fecha ...
  #1 (permalink)  
Antiguo 22/01/2013, 12:16
Avatar de fahs82  
Fecha de Ingreso: abril-2012
Ubicación: guadalajara
Mensajes: 139
Antigüedad: 12 años
Puntos: 12
Insertar default de campo date a fecha posterior

Buen dia , tengo una tabla llamada vales en la cual tengo un campo date llamado vigencia , en el tengo que insertar una fecha posterior , mi duda es si es posible desde el momento de crear la base se puede especificar que el default de el campo sea una fecha posterior una cantidad de dias especifica almacenada en un campo int de la fecha en que se ingreso el registro es decir tengo la tabla vigencia con el campo dias que es int , en el tengo el valor de 30 y tengo la tabla vales con el campo vencimiento que es date , la fecha que deseo se almacene sea 30 dias posterior a la actual , agradesco la orientacion que me puedan dar de como hacer un triger,especificar la orden default al momento de crear la tabla o al momento de hacer el insert , de antemano gracias por la atencion
  #2 (permalink)  
Antiguo 23/01/2013, 06:05
 
Fecha de Ingreso: junio-2011
Mensajes: 139
Antigüedad: 12 años, 10 meses
Puntos: 42
Respuesta: Insertar default de campo date a fecha posterior

Hola fahs82,

Por lo que planteas, efectivamente, una opción es usar un disparador (trigger), te dejo un enlace de sqlfiddle.com con una posible implementación (es un ejemplo que ajustarás según necesites).

Espero te sea útil.

Última edición por wchiquito; 23/01/2013 a las 07:23
  #3 (permalink)  
Antiguo 23/01/2013, 07:36
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Insertar default de campo date a fecha posterior

http://dev.mysql.com/doc/refman/5.1/...ate-table.html

Cita:
The DEFAULT clause specifies a default value for a column. With one exception, the default value must be a constant; it cannot be a function or an expression. This means, for example, that you cannot set the default for a date column to be the value of a function such as NOW() or CURRENT_DATE. The exception is that you can specify CURRENT_TIMESTAMP as the default for a TIMESTAMP column. See Section 11.3.5, “Automatic Initialization and Updating for TIMESTAMP”.
Parece que no, luego la unica via que te queda es un trigger como te sugieren, on insert.... o simplemente que al construir la sentencia INSERT INTO calcules la fecha y la pongas como un valor...

en codigo simulado...

$dias=SELECT dias FROM vigencia;


INSERT INTO .....(....,vencimiento) VALUES (......., DATE_ADD(NOW(), INTERVAL $dias DAY));
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 23/01/2013 a las 07:46

Etiquetas: date, default, insert, trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:27.