2
1つの以上PL/pgSQL質問で私を助けてください。PostgreSQL:テーブルからselect count(*)を返します。
私はPHPスクリプトの実行など、毎日cronジョブを持っており、1つのメインテーブルとその「ID」欄参照数、さらにテーブルから古いレコードを削除:
create or replace function quincytrack_clean()
returns integer as $BODY$
begin
create temp table old_ids
(id varchar(20)) on commit drop;
insert into old_ids
select id from quincytrack
where age(QDATETIME) > interval '30 days';
delete from hide_id where id in
(select id from old_ids);
delete from related_mks where id in
(select id from old_ids);
delete from related_cl where id in
(select id from old_ids);
delete from related_comment where id in
(select id from old_ids);
delete from quincytrack where id in
(select id from old_ids);
return select count(*) from old_ids;
end;
$BODY$ language plpgsql;
そして、ここでは、私はPHPからそれを呼び出す方法ですスクリプト:
$sth = $pg->prepare('select quincytrack_clean()');
$sth->execute();
if ($row = $sth->fetch(PDO::FETCH_ASSOC))
printf("removed %u old rows\n", $row['count']);
なぜ次のエラーが表示されますか?
SQLSTATE[42601]: Syntax error: 7
ERROR: syntax error at or near "select" at character 9
QUERY: SELECT select count(*) from old_ids
CONTEXT: SQL statement in PL/PgSQL function
"quincytrack_clean" near line 23
ありがとう!アレックス
痛い、ありがとうございました - 今私は愚かな感じ –