CREATE TABLE collections ( id BIGINT PRIMARY KEY, updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); CREATE TRIGGER update_timestamp_collections BEFORE UPDATE ON collections FOR EACH ROW SET NEW.updated_at = CURRENT_TIMESTAMP; CREATE FUNCTION uuidv4() RETURNS CHAR(36) NO SQL RETURN LOWER(HEX(RANDOM_BYTES(4))); CREATE PROCEDURE touch_collections() UPDATE collections SET updated_at = NOW(); CREATE EVENT clear_stale_collections ON SCHEDULE EVERY 1 HOUR DO DELETE FROM collections WHERE updated_at < CURRENT_TIMESTAMP - INTERVAL 30 DAY;