用 C 编写的 pgAdmin 的日期戳触发器

发布于 2024-10-27 13:58:15 字数 432 浏览 1 评论 0原文

我们在一台 Linux 机器上安装了 postgres 8,我正在将数据和触发器从我们的 Windows 版本复制到这个新版本。但是,默认情况下未安装 plpgsql,因此复制触发源失败。我只有 C 语言或内部语言可供选择;除非要求 DBA 安装 plpgsql,任何人都可以帮我转换这个:

CREATE OR REPLACE FUNCTION "datestampTrigger"()

RETURNS "trigger" AS
'BEGIN
-- check for datecreated
IF NEW.datecreated IS NULL THEN
    NEW.datecreated := ''now'';
END IF;
NEW.datelastmodified := ''now'';
RETURN NEW;
END;'
  LANGUAGE plpgsql VOLATILE;

We have postgres 8 installed on a linux box, and I'm copying over data and triggers from our windows version to this new one. However, plpgsql isn't installed by default, so copying my trigger source is failing. I only have C or Internal languages to choose from; barring asking the DBA to install plpgsql, can anyone help me convert this:

CREATE OR REPLACE FUNCTION "datestampTrigger"()

RETURNS "trigger" AS
'BEGIN
-- check for datecreated
IF NEW.datecreated IS NULL THEN
    NEW.datecreated := ''now'';
END IF;
NEW.datelastmodified := ''now'';
RETURN NEW;
END;'
  LANGUAGE plpgsql VOLATILE;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

生生漫 2024-11-03 13:58:15

在我遇到的大多数 Linux 系统上,plpgsql 实际上安装在系统上,但不包含在数据库模板中。执行以下命令“激活”数据库中的 plpgsql。

CREATE LANGUAGE plpgsql;

On most linux systems I have encountered plpgsql is actually installed on the system but is not included in the database template. Executing the following "activates" plpgsql in your database.

CREATE LANGUAGE plpgsql;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文