Как создать триггер в SQL?
CREATE TRIGGER set_created_at AFTER INSERT ON users
FOR EACH ROW
BEGIN
IF NEW.status = 'active' THEN
SET NEW.created_at = NOW();
END IF;
END;
Подскажите, что я делаю не так и как правильно создать такой триггер в SQL?
Заранее благодарю за помощь! Ответы:
Похоже, у тебя ошибка в коде создания триггера. Вместо "AFTER INSERT" ты должна использовать "BEFORE INSERT", чтобы установить значение "created_at" до вставки нового пользователя.
Попробуй вот такой код:
CREATE TRIGGER set_created_at BEFORE INSERT ON users
FOR EACH ROW
BEGIN
IF NEW.status = 'active' THEN
SET NEW.created_at = NOW();
END IF;
END;
Теперь, когда будет добавлен новый пользователь со статусом "active", поле "created_at" будет автоматически заполняться текущим timestamp.
Убедись, что в поле "created_at" у тебя установлен тип данных "TIMESTAMP" или "DATETIME".
Удачи!