首页 > 解决方案 > PostgreSQL添加信息并将其转换为大写

问题描述

我一直在尝试编写一个程序,在将客户端添加到“客户端”表时将电子邮件更改为大写。您能否提供帮助或提供一些链接在哪里可以找到此信息?如果您需要任何其他信息,我们很乐意提供。

标签: postgresql

解决方案


您需要一个触发器来执行此操作。在 Postgres 中,触发器由两部分组成:触发器函数和触发器定义

触发函数可能如下所示:

create function upper_case_email()
  returns trigger
as
$$
begin
  new.email := upper(new.email);
  return new;
end;
$$
language plpgsql;

new变量引用是刚刚插入的行。

关于如何在 PL/pgSQL 中编写触发函数的详细信息可以在手册中找到

创建函数后,触发器定义定义触发器应在哪个表上触发以及何时触发。在这种情况下,您需要一个“插入前触发器”——能够在将行写入表之前修改行的列值:

create trigger client_uppercase_email_trg
   before insert on clients
   for each row
   execute procedure upper_case_email();

关于语句选项的详细信息CREATE TRIGGER可以在手册中找到

在线示例


推荐阅读