Вирішено: ДОДАТИ КОЛОНКИ, СТВОРЕНІ ТА ОНОВЛЕНІ НА

Останнє оновлення: 09/14/2023
Автор: SQL SourceTrail

У динамічному світі веб-розробки дата й час є важливими аспектами, особливо при маніпулюванні даними. У 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 забезпечує динамічний спосіб відстеження записів від створення до кожного наступного оновлення. Ця форма системного аудиту зміцнює цілісність даних, забезпечуючи безперебійний моніторинг і підтримку записів бази даних.

Схожі повідомлення: