0 votos

Valores por defecto timestamp

Primero, tengo es la versión del servidor: 10.1.10-MariaDB

El problema que tengo es que creo varios campos tipo TIMESTAMP y al introducir los datos los rellena de forma automática, aunque no lo definí así para todos ellos.

He estado viendo que hay bastantes inconsistencias con este tipo de datos entre versiones de mysql y por este u otro motivo siempre he definido los campos para fechas como de tipo entero y almacenado los milisegundos, pero en este caso necesito el formato que provee el sistema gestor.

Código para crear la tabla:

CREATE TABLE IF NOT EXISTS `demo_notes` (
    `id`        int(11)         NOT NULL AUTO_INCREMENT,
    `note`      varchar(255)    NOT NULL,

    `created_at`    TIMESTAMP       DEFAULT CURRENT_TIMESTAMP, 
    `deleted_at`    TIMESTAMP, 

        PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;

Y unas inserts:

    INSERT INTO demo_notes(`id`, `note`, `created_at`, `deleted_at`) VALUES 
          (NULL, 'xxx', CURRENT_TIMESTAMP, NULL ),
          (NULL, 'xxx', NULL, NULL ),
          (NULL, 'xxx', NULL, '0000-00-00 00:00:00' );

También probe al declarar el campo:

`deleted_at`    TIMESTAMP DEFAULT 0, 

y

`deleted_at`    TIMESTAMP DEFAULT '0000-00-00 00:00:00' , 

El caso es que a no ser que le pase explicitamente '0000-00-00 00:00:00' en la insert, el campo "deleted_at" siempre me toma el mismo que el campo declarado con un CURRENT_TIMESTAMP, y yo quiero que guarde este valor, al pasarle p.ej. NULL o no pasarle nada.

Las preguntas...

  1. Este campo tiene que almacenar el timestand formateado siempre, aunque estén todos los valores a 0, cierto?

  2. Lo que yo pretendo ¿se puede? ¿o hay que pasar siempre el valor '0000-00-00 00:00:00' en la insert?

0voto

aEscarcha Puntos 220

¿Que te hace si lo declaras como deleted_at TIMESTAMP NULL, y en el insert no le pasas nada? Mira http://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html#idm140723082149600

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: