Решено: ДОБАВЯНЕ НА КОЛОНИ, СЪЗДАДЕНИ И АКТУАЛИЗИРАНИ В

Последна актуализация: 09/14/2023
Автор: SQL SourceTrail

В динамичния свят на уеб разработката датата и часът са важни аспекти, особено при манипулиране на данни. В SQL колоните `CREATED_AT` и `UPDATED_AT` играят жизненоважна роля за проследяване кога записът е бил добавен първоначално и последния път, когато е бил актуализиран. Системата ефективно поддържа тези колони автоматично. Този метод е мощен за запазване на целостта на данните в цялата система.

CREATED_AT е клеймото за време, когато записът е първоначално вмъкнат в базата данни, докато 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 таблици осигурява динамичен начин за проследяване на записи от създаването до всяка следваща актуализация. Тази форма на одит на системата укрепва целостта на данните, като гарантира безпроблемно наблюдение и поддръжка на записите в базата данни.

Подобни публикации: