ZF2 MYSQL 事件管理器自定义查询
ZF2 MYSQL Event Manager Custom Query
我正在尝试在 MySQL 事件管理器中保存一个事件,分为两部分,如下所示。
我可以通过 PHPMyAdmin 成功添加它,但是使用 ZF2 TBlegateway 却不开心..
任何解决方案 - 直接通过 php 现在都可以接受..
$this->tableGateway->getAdapter()->driver->getConnection()>execute($eventSql);
$eventSql =
"DELIMITER |
CREATE EVENT slacheckevent9
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 2 MINUTE
DO
BEGIN
UPDATE sla AS T1,
(SELECT eventdata FROM eventdata WHERE eventname = 'CUSTOMER
CONTACTED' AND instructionid=3) AS T2
SET T1.actualtime=T2.eventdata WHERE T1.id = 9;
UPDATE sla
SET slasuccess= CASE
WHEN actualtime <= duetime THEN true
ELSE slasuccess
END
WHERE id = 9
;
END |
DELIMITER ;";
简单:
$eventSql = "
CREATE EVENT slacheckevent9
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 2 MINUTE
DO
BEGIN
UPDATE sla AS T1,
(SELECT eventdata FROM eventdata WHERE eventname = 'CUSTOMER
CONTACTED' AND instructionid=3) AS T2
SET T1.actualtime=T2.eventdata WHERE T1.id = 9;
UPDATE sla
SET slasuccess= CASE
WHEN actualtime <= duetime THEN true
ELSE slasuccess
END
WHERE id = 9
;
END
";
$this->tableGateway->getAdapter()->query($eventSql, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE);
我正在尝试在 MySQL 事件管理器中保存一个事件,分为两部分,如下所示。
我可以通过 PHPMyAdmin 成功添加它,但是使用 ZF2 TBlegateway 却不开心..
任何解决方案 - 直接通过 php 现在都可以接受..
$this->tableGateway->getAdapter()->driver->getConnection()>execute($eventSql);
$eventSql =
"DELIMITER |
CREATE EVENT slacheckevent9
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 2 MINUTE
DO
BEGIN
UPDATE sla AS T1,
(SELECT eventdata FROM eventdata WHERE eventname = 'CUSTOMER
CONTACTED' AND instructionid=3) AS T2
SET T1.actualtime=T2.eventdata WHERE T1.id = 9;
UPDATE sla
SET slasuccess= CASE
WHEN actualtime <= duetime THEN true
ELSE slasuccess
END
WHERE id = 9
;
END |
DELIMITER ;";
简单:
$eventSql = "
CREATE EVENT slacheckevent9
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 2 MINUTE
DO
BEGIN
UPDATE sla AS T1,
(SELECT eventdata FROM eventdata WHERE eventname = 'CUSTOMER
CONTACTED' AND instructionid=3) AS T2
SET T1.actualtime=T2.eventdata WHERE T1.id = 9;
UPDATE sla
SET slasuccess= CASE
WHEN actualtime <= duetime THEN true
ELSE slasuccess
END
WHERE id = 9
;
END
";
$this->tableGateway->getAdapter()->query($eventSql, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE);