在Cakephp中运行Postgresql函数
好的,我正试图通过一个Cakephp AppShell类运行这个postgresql函数在Cakephp中运行Postgresql函数,php,postgresql,cakephp,Php,Postgresql,Cakephp,好的,我正试图通过一个Cakephp AppShell类运行这个postgresql函数 CREATE OR REPLACE FUNCTION rdcdev.populatetemptables() RETURNS date AS ' DECLARE lastSync date; BEGIN SELECT INTO lastSync lastsyncdate FROM rdcdev.syncsettings; INSERT INTO rdcdev.temp_sourcelists (
CREATE OR REPLACE FUNCTION rdcdev.populatetemptables() RETURNS date AS '
DECLARE
lastSync date;
BEGIN
SELECT INTO lastSync lastsyncdate FROM rdcdev.syncsettings;
INSERT INTO rdcdev.temp_sourcelists (
SELECT *
FROM rdcdev.sourcelists
);
INSERT INTO rdcdev.temp_beamdatas (
SELECT *
FROM rdcdev.beamdatas
WHERE temp_beamdatas.datetime > lastsync
);
INSERT INTO rdcdev.temp_beams (
SELECT *
FROM rdcdev.beams
WHERE temp_beams.datetime > lastsync
);
INSERT INTO rdcdev.temp_logdatas (
SELECT *
FROM rdcdev.logdatas
WHERE temp_logdatas.datetime > lastsync
);
INSERT INTO rdcdev.temp_paramdatas (
SELECT *
FROM rdcdev.paramdatas
WHERE temp_paramdatas.datetime > lastsync
);
RETURN lastSync;
END;
' LANGUAGE 'plpgsql';
正如您所看到的,我希望能够从函数调用很多东西,而不是在cakephp调用中单独调用这些东西。我已经通过命令行调用验证了该函数是否按预期工作,但它似乎不喜欢通过cakephp中的查询调用来调用它:
class SyncShell extends AppShell
{
...blah blah blah
$SQLcommand = "SELECT rdcdev.populatetemptables();";
$this->Syncsetting->query($SQLcommand);
}
Syncsetting只是数据库中的数据模型之一。代码似乎在cakephp日志中没有错误就崩溃了,所以我很难弄清楚为什么它不喜欢这样。是因为函数正在使用SyncSettings之外的表。如果是这样的话,我需要在Cakephp的model文件夹中为函数创建一个模型类,或者是否有一些特殊的方法来调用Cakephp中的函数,而我的初级GoogleFoo无法找到这些函数