Tạo PROCEDURE, EVENT Mysql


use house_manage


CREATE TABLE `users` (
`id` int(14) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`username` varchar(50) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(50) DEFAULT NULL,
`phone` varchar(25) DEFAULT NULL,
`birthdate` date DEFAULT NULL,
`created` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

DELIMITER $$
DROP PROCEDURE IF EXISTS `createHistoryRecords` $$
CREATE PROCEDURE `createHistoryRecords` ()
BEGIN
SET @isInsert = 0;
SET @idCharge = 0;
SELECT COUNT(id) INTO @isInsert FROM house_manage.history_monthly WHERE MONTH(createDate) = MONTH(CURRENT_DATE()) and YEAR(createDate) = YEAR(CURRENT_DATE());
SELECT id INTO @idCharge FROM charge WHERE status ='Y';
IF @isInsert = 0 THEN
INSERT INTO house_manage.history_monthly(idCharge, idRoom, deliveryUseBefore, status, createDate)
SELECT @idCharge, id, history_monthly.deliveryUseCurrent, 0, CURRENT_DATE() FROM room `room`
LEFT JOIN (


SELECT history_monthly.idRoom, deliveryUseCurrent FROM house_manage.history_monthly history_monthly

INNER JOIN (SELECT idRoom, max(createDate) AS cd FROM house_manage.history_monthly GROUP BY idRoom) subHm
ON (subHm.idRoom = history_monthly.idRoom AND subHm.cd = history_monthly.createDate)

) history_monthly ON history_monthly.idRoom = room.id
WHERE status = 'Y';
END IF;
END $$
DELIMITER ;

DROP EVENT IF EXISTS `create_history_event`;
CREATE EVENT create_history_event
ON SCHEDULE EVERY '7' HOUR
STARTS '2017-07-01 00:00:00'
COMMENT 'Auto insert into history_monthly table.'
DO
CALL house_manage.createHistoryRecords();


SET GLOBAL event_scheduler = 1;


SHOW PROCESSLIST;
CALL `house_manage`.`createHistoryRecords`();

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất /  Thay đổi )

Google photo

Bạn đang bình luận bằng tài khoản Google Đăng xuất /  Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )

Connecting to %s