繁体   English   中英

SQL Postgresql插入语句

[英]SQL postgresql insert statement

我有一个以下问题,例如,我有一个下表:

CREATE TABLE "regions" (gid serial PRIMARY KEY,
"__gid" int8,
"name" varchar(20),
"language" varchar(7),
"population" int8);

我想插入一些记录,说“名称”的值之一是-“ B”,我必须编写哪种代码才能将“ B”更改为“英语”? 这是用某种触发器完成的吗? 因此,我是否必须编写触发器以在插入时自动更改值? 任何帮助极大的应用!

这是一条UPDATE语句 ,它将满足您的要求,在这种情况下:

UPDATE regions set name = 'English-Speaking' where name = 'B';

要将其放在函数中,请使用类似以下内容的代码:

CREATE OR REPLACE FUNCTION  insert_into_wgs()
RETURNS void AS
$$
BEGIN
UPDATE regions SET name = 'English-Speaking' WHERE name = 'B';
END
$$
LANGUAGE 'pgpsql';

然后创建一个触发器来运行此功能:

CREATE TRIGGER log_update
    AFTER UPDATE ON accounts
    FOR EACH ROW
    WHEN (OLD.* IS DISTINCT FROM NEW.*)
    EXECUTE PROCEDURE
    insert_into_wgs();

假设我已经从描述中正确猜出了您的意思:

您将需要一个简单的BEFORE INSERT OR UPDATE ... FOR EACH ROW EXECUTE触发器来调用PL / PgSQL触发器过程,该过程将更改NEW记录的值,然后执行RETURN NEW

该文档包含大量细节,由于这是家庭作业,因此我将不提供完整示例。 CREATE TRIGGERPL / pgSQL触发过程开始

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM