Chcę mieć jedną tabelę z dwoma kolumnami TIMESTAMP
. Jedna kolumna do śledzenia, kiedy został utworzony rekord, a drugi do śledzenia, kiedy został zmodyfikowany. Chcę, aby te wartości były obsługiwane przez bazę danych. Nie chcę, aby moja warstwa aplikacji musiała o tym myśleć.Jedna tabela Mysql z wieloma kolumnami TIMESTAMP
Wiem, że jeśli masz kolumnę TIMESTAMP
z DEFAULT CURRENT_TIMESTAMP
lub ON UPDATE CURRENT_TIMESTAMP
, nie możesz mieć kolejnej kolumny TIMESTAMP
. Możesz użyć DATETIME
, ale nie ma sposobu, aby to zrobić domyślnie, poza samym wyzwalaczem.
I stwierdziliśmy, że can have multiple TIMESTAMP
columns pozostawiając każdy bez DEFAULT
lub ON UPDATE
i wstawienie NULL
gdy rekord jest tworzony, powodując każdy mieć aktualny timestamp. Od tego momentu pierwsza kolumna zostanie automatycznie zaktualizowana.
To działa fantastycznie, ale pozostawia mnie z zabawnym uczuciem. Może to być błąd i może zostać naprawiony w dowolnym momencie. Jeśli tak ma działać, to niech tak będzie. Z radością pójdę dalej. Czy ktoś może mi powiedzieć, czy jest to najlepszy sposób, czy powinienem używać wyzwalaczy?
Dzięki MySQL 5.6.5 wiele znaczników czasu może być niezależnie kontrolowanych w jednej tabeli, więc reguły dla tego uległy zmianie. – TJChambers