Столбец
в таблице SQL. Я предоставлю вам несколько подходов и примеры кода для решения этой задачи с использованием различных систем баз данных.
Обратите внимание, что в примерах кода предполагается наличие таблицы со столбцом с именем updated_atв базе данных.
-
MySQL:
-- Method 1: Use a TIMESTAMP column with the DEFAULT CURRENT_TIMESTAMP attribute ALTER TABLE your_table MODIFY COLUMN updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; -- Method 2: Use a TRIGGER to update the column on every update DELIMITER // CREATE TRIGGER trigger_name BEFORE UPDATE ON your_table FOR EACH ROW SET NEW.updated_at = CURRENT_TIMESTAMP; // DELIMITER ; -
PostgreSQL:
-- Method 1: Use a TIMESTAMP column with the DEFAULT statement ALTER TABLE your_table ALTER COLUMN updated_at SET DEFAULT CURRENT_TIMESTAMP; -- Method 2: Use a TRIGGER to update the column on every update CREATE OR REPLACE FUNCTION update_updated_at() RETURNS TRIGGER AS $$ BEGIN NEW.updated_at = NOW(); RETURN NEW; END; $$ LANGUAGE plpgsql; CREATE TRIGGER trigger_name BEFORE UPDATE ON your_table FOR EACH ROW EXECUTE FUNCTION update_updated_at(); -
SQL Server:
-- Method 1: Use a DATETIME column with the DEFAULT statement ALTER TABLE your_table ADD CONSTRAINT DF_your_table_updated_at DEFAULT GETDATE() FOR updated_at; -- Method 2: Use a TRIGGER to update the column on every update CREATE TRIGGER trigger_name ON your_table AFTER UPDATE AS BEGIN UPDATE your_table SET updated_at = GETDATE() FROM your_table INNER JOIN inserted ON your_table.primary_key = inserted.primary_key; END; -
SQLite:
-- Method: Use a TRIGGER to update the column on every update CREATE TRIGGER trigger_name AFTER UPDATE ON your_table FOR EACH ROW BEGIN UPDATE your_table SET updated_at = DATETIME('now') WHERE your_table.primary_key = OLD.primary_key; END;