MySql Event Scheduler每天在特定时间复制和插入

时间:2018-11-19 16:34:02

标签: mysql scheduler

请每天使用MySql的Event Scheduler从另一个表的MAX行值中复制和更新一个表,这是正确的语法。这些任务显然超出了我对MySql的基本了解。

这是我所拥有的,但不起作用:

DELIMITER $$
CREATE 
    EVENT  IF NOT EXISTS `Statement_Opening_Closing_Bal` 
    ON SCHEDULE EVERY 1 DAY STARTS '00:00:30' 
    DO BEGIN

        -- GET CUSTOMER UNIQUE IDs 
        SELECT id
        FROM customer AS Customer_UniqueIDs;

        -- copy associated audit records
        SELECT transactiondate, credit, debit, amount FROM passbook.Customer_UniqueIDs WHERE transactionid=MAX(transactionid) AS  LastTransactionEachDay;

        -- INSERT MAX ROW TRANSACTION FOR ABOVE SELECT INTO StatementofAccountRef.Customer_UniqueIDs,
        INSERT INTO StatementofAccountRef.Customer_UniqueIDs (tid, entrydate, dtdebit, dtcredit, dtbalance)
       VALUES(NULL, LastTransactionEachDay.entrydate, LastTransactionEachDay.dtdebit, LastTransactionEachDay.dtcredit, LastTransactionEachDay.dtbalance)


    END */$$

DELIMITER ;

为澄清起见,我有一个名为 Customer 的表,该表的名为“ id ”的列包含所有客户的唯一ID。

现在我有几个表,其名称为 Passbook.id (例如Passbook2,Passbook3等),其中列名称中的“ id ”对应于“唯一”表“ 客户”中的“ id ”。每个 Passbook.id 都有名为交易日期,贷方,借方,金额的列。

我还有几个表,其名称为 StatementofAccountRef.id ,其中列名称中的“ id ”也对应于唯一的“ id ”在“客户”表中。每个 StatementofAccountRef.id 都有名为 tid,entrydate,dtdebit,dtcredit,dtbalance的列。

我想做的是: 1.从Table Customer中获取每个“ id”,并使用它来选择每个客户的存折。

  1. 从每个passbook.id中获取“ transactiondate”,“ debit”,“ credit”,“ amount”列的最大行值。通过最大行值,我的意思是与事件调度程序运行时一样,passbook.id中的最后或最新行条目。不管它们是否更改,只要每天是特定时间(00.00.30),只要它们是表passbook.id中的最新条目即可。

  2. 将值插入到每个对应的StatementofAccountRef.id列的输入日期,dtdebit,dtcredit,dtbalance中。 StatementofAccountRef.id表中的“ tid”列设置为AUTO INCREMENT。 entrydate(在StatementofAccountRef.id中)为DATETIME,与passbook.id中的transactiondate一样。

请任何有工作帮助的人表示赞赏。谢谢。

显示表格数据和样本条目:

表客户

CREATE TABLE `customer` (
 `id` int(5) NOT NULL,
 `name` varchar(255) NOT NULL,
 `surname` varchar(255) DEFAULT NULL,
 `gender` char(1) NOT NULL,
 `dob` date NOT NULL,
 `nominee` varchar(255) NOT NULL,
 `account` varchar(255) NOT NULL,
 `address` varchar(255) NOT NULL,
 `mobile` varchar(15) NOT NULL,
 `email` varchar(255) NOT NULL,
 `accessid` varchar(60) NOT NULL,
 `password` varchar(255) NOT NULL,
 `branch` varchar(255) NOT NULL,
 `Branch_Code` varchar(255) NOT NULL,
 `lastlogin` datetime NOT NULL,
 `accstatus` varchar(255) NOT NULL,
 `accnumber` bigint(10) DEFAULT NULL,
 `CustomerRefNum` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
 `CustomerTokenRef` varchar(255) DEFAULT NULL,
 `Acc_Manager` varchar(255) DEFAULT NULL,
 `currency` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1

63, John, Denon, M, 1976-12-10, Jonny Lee, GoldPlus, 200 Monroe Street #233 Rockville MD 2085, cmailultimate@gmail.com, 0458ac7536f4101f597820c7f9136b2354f2f156, Zone C, Team 1, 2018-11-18 03-14-45, Active, 12113, CUDG23299-TYWB02323, Raymond Crow, Dollars

表存折63

CREATE TABLE `passbook63` (
 `transactionid` int(5) NOT NULL,
 `transactiondate` date DEFAULT NULL,
 `name` varchar(255) DEFAULT NULL,
 `surname` varchar(255) DEFAULT NULL,
 `fullnames` varchar(255) DEFAULT NULL,
 `branch` varchar(255) DEFAULT NULL,
 `Branch_Code` varchar(255) DEFAULT NULL,
 `credit` int(10) DEFAULT NULL,
 `debit` int(10) DEFAULT NULL,
 `amount` float(10,2) DEFAULT NULL,
 `narration` varchar(255) DEFAULT NULL,
 `recall_value` varchar(10) DEFAULT NULL,
 `transactionRef` varchar(255) DEFAULT NULL,
 `transactionreceipts` varchar(255) DEFAULT NULL,
 `receiving_Inst` varchar(255) DEFAULT NULL,
 `beneficiary_account` varchar(255) DEFAULT NULL,
 `beneficiary_name` varchar(255) DEFAULT NULL,
 `transaction_datetime` datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1

样本数据:19,2017-10-15 06:06:06,John,Denon,John Denon,C区,团队1,6000,6000,6000,对客户101的两次下注,0,WERW39489923,三重确认要求的结果数12113哈里森·杜伊(Harrison Due)2017年10月19日01:06:06

AccountRef63表对帐单

CREATE TABLE `StatementofAccountRef63` (
 `tid` int(11) NOT NULL AUTO_INCREMENT,
 `entrydate` datetime DEFAULT NULL,
 `dtdebit` int(11) NOT NULL,
 `dtcredit` int(11) NOT NULL,
 `dtbalance` int(11) NOT NULL,
 PRIMARY KEY (`tid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

样本数据:011,2018-02-28 06:06:06,36000,36000,96000

0 个答案:

没有答案