sql - 用于创建函数的未终止的美元引用字符串 postgress
问题描述
这个问题可能会在这里问很多人,但我已经尝试过他们的建议,但它仍然对我不起作用,所以我要问这个我正在尝试创建一个function
在我更新表上的内容时自动触发 update_at 的位置这是我的文件中的语法.sql
:
CREATE OR REPLACE FUNCTION trigger_set_timestamp()
RETURNS TRIGGER AS $BODY$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
$BODY$ LANGUAGE plpgsql;
我总是得到错误:
unterminated dollar-quoted string at or near "$BODY$
BEGIN
NEW.updated_at = NOW()"
我已尝试将其更改为$$
但仍然无法正常工作,我在这种情况下使用 Go 和名为sql-migrate的迁移工具
任何人都可以解决这个问题吗?我从昨天开始尝试过,现在我真的被困住了
解决方案
它可能来自您的客户,它不承认美元报价。
一个典型的解决方法是使用常规单引号。这需要双引号所有嵌入的单引号,但幸运的是你的代码没有,所以:
CREATE OR REPLACE FUNCTION trigger_set_timestamp()
RETURNS TRIGGER AS '
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
' LANGUAGE plpgsql;
推荐阅读
- javascript - WordPress 网站:主页重定向到“登录”页面(现在不存在)
- python - 如何将字典展开成 pandas DataFrame 以获取更大的字典?
- python - 关于访问元素的 Numpy 问题
- django - Django调用表中的特定字段
- r - 读取多键值文件
- r - 使用 stat_summary_hex 计算百分比/有条件求和
- javascript - 试图从控制台中的文本字段输入输入,页面只是空白
- python - Python:如何随机混合两个列表?
- reactjs - 使用 Jest 模拟 React 组件
- ruby-on-rails - 如何为某些区域创建单独的设计认证?