У динамічному світі веб-розробки дата й час є важливими аспектами, особливо при маніпулюванні даними. У SQL стовпці `CREATED_AT` і `UPDATED_AT` відіграють важливу роль у відстеженні того, коли запис було додано вперше та коли його останнє оновлено. Система ефективно підтримує ці стовпці автоматично. Цей метод є потужним у збереженні цілісності даних у всій системі.
CREATED_AT це позначка часу, коли запис був спочатку вставлений у базу даних, while UPDATED_AT це позначка часу, коли над записом було виконано будь-яку дію оновлення. Ці мітки часу служать інструментом системного аудиту, надаючи інформацію про життєвий цикл запису.
Створення стовпців часових позначок у SQL
Створення цих стовпців з часовими мітками передбачає використання мови визначення даних SQL (DDL). Наведений нижче фрагмент коду створює нову таблицю зі стовпцями позначки часу `CREATED_AT` і `UPDATED_AT`:
CREATE TABLE sample_table ( id INT PRIMARY KEY, data VARCHAR(100), CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UPDATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
`DEFAULT CURRENT_TIMESTAMP` встановлює значення стовпця за замовчуванням на поточну дату й час. А `ON UPDATE CURRENT_TIMESTAMP` встановлюватиме значення стовпця на поточну дату й час кожного разу, коли над рядком виконується будь-яка дія оновлення.
Додавання стовпців після створення
У багатьох випадках виникне потреба додати стовпці `CREATED_AT` і `UPDATED_AT` для створення таблиці публікацій. Це можна зробити за допомогою оператора SQL `ALTER TABLE`, який змінює існуючу структуру таблиці.
ALTER TABLE sample_table ADD ( CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UPDATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
За допомогою наведеного вище оператора SQL стовпці `CREATED_AT` і `UPDATED_AT` плавно додаються до вже існуючої таблиці під назвою `sample_table`.
Впровадження тригерів
У деяких системах баз даних, таких як SQLITE, нам потрібно використовувати тригери як альтернативу, оскільки ON UPDATE CURRENT_TIMESTAMP не підтримується.
Щоб реалізувати це, ми створюємо тригер `ПІСЛЯ ОНОВЛЕННЯ`, який автоматично оновлює стовпець `UPDATED_AT` після будь-якої зміни запису.
CREATE TRIGGER update_timestamp AFTER UPDATE ON sample_table FOR EACH ROW BEGIN UPDATE sample_table SET UPDATED_AT = CURRENT_TIMESTAMP WHERE id = NEW.id; END;
Цей тригер запускається після оновлення `sample_table`, встановлюючи для стовпця `UPDATED_AT` поточну позначку часу.
Реалізація стовпців CREATED_AT і UPDATED_AT у ваших таблицях SQL забезпечує динамічний спосіб відстеження записів від створення до кожного наступного оновлення. Ця форма системного аудиту зміцнює цілісність даних, забезпечуючи безперебійний моніторинг і підтримку записів бази даних.
