首页 > 解决方案 > 使用 EVENTS 时从服务器收集权限的问题(服务提供商说不可能开启)。我还有其他可能的选择吗?

问题描述

我使用事件将我的查询插入到每小时的平均结果中(这是根据今天来的客户数量和他们各自从一开始就到达的总数计算得出的)。事件成功运行并在我的本地主机上成功插入每小时所需的值。但主要问题是将事件加载到 Server Db 中,因为我们的服务提供商拒绝开启 Superprivileges。现在我需要找到另一个解决方案而不是事件

这是我对事件的查询,我们可以尝试其他方式吗?

CREATE EVENT average_visiter
ON SCHEDULE
EVERY 1 DAY
STARTS '2014-04-30 00:20:00' ON COMPLETION PRESERVE ENABLE 
 DO
INSERT INTO `test_table`( `res_id`, `b_id`, `total_visit`, `tota_count`)  
SELECT res_id,b_id,sum(total_visit),count(cust_phone) FROM 
`customer_ledger` WHERE cust_phone IN (SELECT cust_phone FROM 
customer_ledger where DATE(last_visit)=CURRENT_DATE()-1) GROUP BY res_id,b_id

我需要自动以任何其他方式放置相同的插入查询。我对触发器和存储过程没有足够的知识。请记住,我需要将日常详细信息单独显示在表格中

标签: phpmysql

解决方案


我使用的是触发器而不是事件

 USE feetobristo;
DELIMITER $$
DROP TRIGGER IF EXISTS feetobristo.customer_ledger_AFTER_INSERT$$
USE `feetobristo`$$
CREATE DEFINER=`feeto`@`localhost` TRIGGER feetobristo.customer_ledger_AFTER_INSERT 
AFTER INSERT ON customer_ledger FOR EACH ROW
BEGIN
INSERT INTO test_table( res_id, b_id, total_visit, tota_count)  
SELECT res_id,b_id,sum(total_visit),count(cust_phone) FROM 
customer_ledger WHERE cust_phone IN (SELECT cust_phone FROM 
customer_ledger where DATE(last_visit)=CURRENT_DATE()) GROUP BY res_id,b_id;
END$$
DELIMITER ;

现在工作得很好 ta-ta


推荐阅读