
При разработването на софтуер един от най-важните аспекти е способността да се следят промените, направени в записите на базата данни. Като такъв, наличието на автоматизиран механизъм за актуализиране на тези записи е от решаващо значение. „updated_at“ е автоматично актуализираща се **timestamp** колона, която регистрира последния път, когато даден запис е бил променен. Това е много практично и ефективно решение за много разработчици, които трябва да наблюдават промените в данните във времето.
CREATE TABLE some_table_name ( id INT PRIMARY KEY, some_data VARCHAR(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
Горният SQL код автоматично ще генерира и актуализира колоните 'created_at' и 'updated_at', когато съответно се добави или модифицира запис в таблицата.
Решението: Автоматично актуализиране на „updated_at“
Случаи могат да възникнат, когато имаме съществуваща таблица и искаме да добавим колоната „updated_at“. Следният SQL код постига точно това:
ALTER TABLE some_table_name ADD COLUMN updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
Стъпка по стъпка обяснение на кода
В SQL кода по-горе, `ALTER TABLE some_table_name` инструктира SQL да промени съществуващата таблица “some_table_name”. `ADD COLUMN updated_at` добавя нова колона с име 'updated_at'.
Частта „TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP“ от кода е разбита по следния начин:
- „TIMESTAMP“: Указва типа данни, които колоната „updated_at“ ще съдържа, в този случай стойност на времево клеймо.
- „DEFAULT CURRENT_TIMESTAMP“: Задава стойността по подразбиране на колоната „updated_at“ на текущото времево клеймо, когато в таблицата се вмъкне нов запис
- „ON UPDATE CURRENT_TIMESTAMP“: Автоматично актуализира колоната „updated_at“ с текущия timestamp всеки път, когато съответният запис бъде променен.
Включване на библиотеки или функции
Най-вече функцията, участваща в автоматичното актуализиране на 'updated_at', е функцията `CURRENT_TIMESTAMP`, която връща текущите дата и час.
Разбирането как това работи в контекста на управление на бази данни и SQL програмиране, не само ще ви помогне да рационализирате работата си, но и ще подобри вашата **ефективност** като разработчик. Винаги помнете, че технологията е там, за да улесни работата ни, а SQL има множество функции и функции, които могат да рационализират вашето изживяване и да оптимизират вашите операции, като автоматично актуализиране „updated_at“.
Подобни проблеми
В допълнение към функцията за автоматично актуализиране 'updated_at', има и други проблеми, свързани с клеймото за време, които може да проучите. Например, можете да имате колона „created_at“, като нейната стойност по подразбиране е зададена на текущото времево клеймо. Тази колона няма да се промени, когато записът се актуализира, като ви дава ясна отправна точка за това кога е създаден записът.
ALTER TABLE some_table_name ADD COLUMN created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
Колоните „created_at“ и „updated_at“ се допълват взаимно и често се използват заедно в много приложения за постигане на пълно проследяване на исторически данни. Те са неразделна част от набора полезни помощни програми, които SQL предоставя за автоматизирано управление на данни. Винаги проучвайте тези функционалности, тъй като те добавят стойност към вашите процеси и ви правят **компетентен** и ефективен SQL разработчик.