DELIMITER //
BEGIN
SET @email = (SELECT email FROM accounts WHERE id = uid LIMIT 1);
SET @rdt = (SELECT regDT FROM accounts WHERE id = uid LIMIT 1);
SET @now = NOW();
IF @email IS NULL AND @now > DATE_ADD(@rdt, INTERVAL 7 DAY) THEN
UPDATE accounts SET blocked = 1 WHERE id = uid LIMIT 1;
END IF;
END//
Процедура получает на вход ID пользователя [uid], затем получает в переменные дату регистрации и адрес эл. почты. Далее проверяет, ввёл ли пользователь свою почту и сколько дней прошло с даты регистрации. Если почта не введена и с даты регистрации прошло более недели, то блокирует аккаунт.
Таблица accounts:CREATE TABLE IF NOT EXISTS `accounts` (
`id` bigint(20) NOT NULL COMMENT 'Идентификатор пользователя',
`login` tinytext NOT NULL COMMENT 'Логин',
`pass` tinytext NOT NULL COMMENT 'Пароль',
`email` tinytext COMMENT 'Почта',
`regDT` datetime NOT NULL COMMENT 'Дата и время регистрации',
`regIP` varchar(15) NOT NULL DEFAULT '0.0.0.0' COMMENT 'Регистрационный IP',
`blocked` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Заблокирован?'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Аккаунты';