【问题标题】:'Select' and 'insert into' multiple rows by a My Sql event通过 My Sql 事件“选择”和“插入”多行
【发布时间】:2018-09-12 08:02:24
【问题描述】:

我需要写一个MySql Event 以在某些条件下从表中选择一些值并将这些值放入第二个表中。通过 select 语句。我得到多行,所以我需要将数据作为批处理存储在第二个表中。我怎样才能做到这一点?我写了一个事件来选择一行。但我需要做的是选择多行并作为批处理存储。

我写的事件如下。

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 ;

【问题讨论】:

    标签: mysql database insert-into mysql-event


    【解决方案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 ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-05
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      • 2019-02-02
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多