php—使用事件时从服务器收集权限的问题(服务提供商说不可能打开)我能有其他可能的选择吗?

qacovj5a  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(285)

我被用来将我的查询插入到每小时查找平均值中(这是由今天的客户访问次数和他们从一开始就到达的总次数计算出来的)。事件成功运行并在本地主机上成功插入每小时所需的值。但主要的问题是将事件加载到服务器数据库中,因为我们的服务提供商拒绝使用超级特权。现在我需要找到另一个解决方案而不是事件
这是我对这个事件的疑问,我们可以尝试其他方法吗?

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

我需要将相同的insert查询自动放到任何其他方式上。我在触发器和存储过程方面没有足够的知识。记得我需要每天的细节分别显示在表中

gopyfrb3

gopyfrb31#

我被用来触发而不是事件

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 ;

很好,塔塔

相关问题