MySql Event Scheduler Копирование и вставка в определенное время каждый день - PullRequest
0 голосов
/ 19 ноября 2018

пожалуйста, мне нужен правильный синтаксис для копирования и обновления таблицы каждый день из значений строки MAX другой таблицы с помощью MySql Event Scheduler.Задачи явно превосходят мои базовые знания 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 ;

Для пояснения у меня есть таблица с именем Клиент со столбцом с именем " id ", который содержит уникальный идентификатор для всех клиентов.

Теперь у меня есть несколько таблиц с именами, такими как Passbook.id (например, Passbook2, Passbook3,и т. д.), где " id " в именах столбцов соответствует уникальному " id " в таблице " Customer ".Каждый Passbook.id имеет столбцы с именем транзакция, кредит, дебет, сумма.

И у меня также есть несколько таблиц с именами StatementofAccountRef.id где " id " в именах столбцов также соответствует уникальному " id " в таблице "Customer".Каждый StatementofAccountRef.id имеет столбцы с именами tid, entrydate, dtdebit, dtcredit, dtbalance.

Что я хочу сделать, это: 1. Взять каждый «id»из таблицы Customer и используйте ее для выбора passbook.id * каждого клиента

Получите максимальные значения строки из каждого passbook.id для столбцов «транзакция», «дебет», «кредит», «сумма».Под значениями Max Row я имею в виду последнюю или последнюю запись строки в passbook.id на момент запуска планировщика событий.Это значение будет выбираться каждый день в определенное время (00.00.30) независимо от того, изменяются они или нет, поскольку они являются самой последней записью в таблице passbook.id

Вставьте значения вкаждая соответствующая запись в столбце StatementofAccountRef.id вступает в дату, dtdebit, dtcredit, dtbalance.Для столбца "tid" в таблицах StatementofAccountRef.id установлено значение AUTO INCREMENT.Элемент entrydate (в StatementofAccountRef.id) имеет значение DATETIME, как и datedation транзакции в passbook.id.

Любая рабочая помощь приветствуется, ребята, пожалуйста.Спасибо.

Показать данные таблицы и примеры записей:

Таблица клиентов

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

Таблица passbook63

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, Джон, Денон, Джон Денон, Зона C, Команда 1, 6000, 6000, 6000, Двойная ставка на клиента 101, 0, WERW39489923, Требуется тройное подтверждение результатов, 12113, Harrison Due, 2017-10-19 01: 06: 06

Таблица Statement ofAccountRef63

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

...