首页 > 解决方案 > MYSQL 每月自动更新

问题描述

我正在尝试创建一个系统,用户将从插入系统的日期开始每月获得新的授权包。我有 2 个表“lejer”,其中包含余额并由用户和表“授权”进行管理控制权利包用户可以从日期期间获取。我的问题是,从日期期间,如何从管理员给出的日期期间每月自动更新表“lejer”中的余额包。例:九月john balance pack是1,因为他正在服用2 pack,然后当他想申请下个月时,余额将根据表中的'entitle'更新为3。如何在mysql中实现?

SQL 更新授权包:

UPDATE lejer l
INNER JOIN entitle e ON l.season = e.season
SET l.entitle = e.entitle

表标题:

CREATE TABLE `entitle` (
  `id` bigint(5) NOT NULL auto_increment,
  `entitle` varchar(30) default NULL,
  `date_from` date default NULL,
  `date_to` date default NULL,
  `season` varchar(10) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 100352 kB; InnoDB free: 99328 kB; InnoDB free: ';
#----------------------------
# Records for table entitle
#----------------------------


insert  into entitle values 
(1, '3', '2019-09-01', '2019-12-31', '201801');

表'lejer':

CREATE TABLE `lejer` (
  `id` int(10) NOT NULL auto_increment,
  `name` varchar(50) NOT NULL,
  `season` varchar(10) NOT NULL,
  `entitle` int(10) default NULL,
  `taken` int(10) default NULL,
  `balance` int(10) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 100352 kB; InnoDB free: 100352 kB; InnoDB free:';
#----------------------------
# Records for table lejer
#----------------------------


insert  into lejer values 
(4, 'John', '201801', 3, 2, 1), 
(5, 'Ali', '201802', 3, 1, 2), 
(8, 'Ella', '201801', 3, 0, 3), 
(10, 'Kamal', '201802', 3, 0, 3);

标签: mysql

解决方案


推荐阅读