Sie können einfach nur die Standardklausel CURRENT_TIMESTAMP
setzen (wie @Mark und @dcp bemerkt in den anderen Antworten):
CREATE TABLE your_table (
...
`created_timestamp` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Testfall:
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)
EDIT:
In meiner ursprünglichen Antwort schlug ich vor, eine -Spalte mit einer DEFAULT
-Klausel zu verwenden, die auf CURRENT_TIMESTAMP
gesetzt ist. Dies ist jedoch nur möglich, wenn der TIMESTAMP
Datentyp, wie stated in documentation:
Die DEFAULT
Wert-Klausel in einer Datentyp-Spezifikation gibt einen Standardwert für eine Spalte. Mit einer Ausnahme muss der Standardwert eine Konstante sein. es kann keine Funktion oder ein Ausdruck sein. Dies bedeutet beispielsweise, dass Sie den Standardwert für eine Datumsspalte nicht als Wert für eine Funktion wie NOW()
oder CURRENT_DATE
festlegen können. Die Ausnahme ist, dass Sie CURRENT_TIMESTAMP
als Standard für eine Spalte TIMESTAMP
angeben können.
Nicht unbedingt, Sie können es nicht automatisch zu -aktualisieren. – dcp
Standardmäßig wird der Zeitstempel NICHT aktualisiert. – ajacian81