Usted puede simplemente querer establecer su cláusula de incumplimiento a CURRENT_TIMESTAMP
(como @Mark y @dcp se señala en las otras respuestas): caso
CREATE TABLE your_table (
...
`created_timestamp` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
prueba:
CREATE TABLE tb (`a` int, `c` TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
Query OK, 0 rows affected (0.04 sec)
INSERT INTO tb (a) VALUES (1);
Query OK, 1 row affected (0.01 sec)
SELECT * FROM tb;
+------+---------------------+
| a | c |
+------+---------------------+
| 1 | 2010-06-09 23:31:16 |
+------+---------------------+
1 row in set (0.00 sec)
UPDATE tb SET a = 5;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
SELECT * FROM tb;
+------+---------------------+
| a | c |
+------+---------------------+
| 5 | 2010-06-09 23:31:16 |
+------+---------------------+
1 row in set (0.00 sec)
EDITAR:
En mi respuesta original sugerí usar una columna DATETIME
con una cláusula DEFAULT
establecida en CURRENT_TIMESTAMP
. Sin embargo esto sólo es posible cuando se utiliza el tipo de datos TIMESTAMP
, como stated in documentation:
La cláusula DEFAULT
valor en una especificación de tipo de datos indica un valor predeterminado para una columna. Con una excepción, el valor predeterminado debe ser una constante; no puede ser una función o una expresión. Esto significa, por ejemplo, que no puede establecer el valor predeterminado para una columna de fecha para que sea el valor de una función como NOW()
o CURRENT_DATE
. La excepción es que puede especificar CURRENT_TIMESTAMP
como valor predeterminado para una columna TIMESTAMP
.
No necesariamente, puede configurarlo para que no automático -actualizar. – dcp
De forma predeterminada, la marca de tiempo NO se actualiza. – ajacian81