«Выбрать» и «вставить в» несколько строк с помощью события My Sql

0

Мне нужно написать 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 ;
Теги:
database
insert-into
mysql-event

1 ответ

1
Лучший ответ

Вы можете сразу вставить выбранные строки в целевую таблицу. Например:

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 ;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню