Мне нужно написать MySql Event
чтобы выбрать некоторые значения из таблицы в некоторых условиях и поместить эти значения во вторую таблицу. По выбору. Я получаю несколько строк, поэтому мне нужно хранить данные во второй таблице в виде пакета. Как я могу это достичь? Я написал событие, чтобы выбрать одну строку. Но мне нужно выбрать несколько строк и сохранить как пакет.
Событие, которое я написал, выглядит следующим образом.
DELIMITER $$
CREATE EVENT salary_add
ON SCHEDULE EVERY 24 HOUR
DO
BEGIN
DECLARE month_end DATETIME;
DECLARE today DATETIME;
DECLARE reg_id VARCHAR(6);
DECLARE sal INT(8);
SET month_end = LAST_DAY(DATE(NOW()));
SET today = DATE(NOW());
IF month_end=today THEN
SELECT register_id,salary INTO reg_id,sal FROM employees
WHERE status ='1' LIMIT 1;
INSERT INTO tbl_salary (register_id,amount,salary_date,status) VALUES (reg_id,sal,today,'0');
END IF;
END $$
DELIMITER ;
Вы можете сразу вставить выбранные строки в целевую таблицу. Например:
DELIMITER $$
CREATE EVENT salary_add
ON SCHEDULE EVERY 24 HOUR
DO
BEGIN
DECLARE month_end DATETIME;
SET month_end = LAST_DAY(CURDATE());
IF month_end=CURDATE() THEN
INSERT INTO tbl_salary (register_id, amount, salary_date, status)
SELECT register_id,
salary,
CURDATE(),
'0'
FROM employees
WHERE status ='1'
END IF;
END $$
DELIMITER ;