Sql 触发到增量值
我的扳机有点问题 他不工作。我有这张桌子:Sql 触发到增量值,sql,triggers,Sql,Triggers,我的扳机有点问题 他不工作。我有这张桌子: create table Establishment ( idEstablishment serial primary key, idBeacon int, "name" varchar(45) not null, address varchar(200) not null, urlImage varchar(200), description varchar(200), phoneNumber
create table Establishment (
idEstablishment serial primary key,
idBeacon int,
"name" varchar(45) not null,
address varchar(200) not null,
urlImage varchar(200),
description varchar(200),
phoneNumber varchar(10) not null,
"type" int not null,
latitude float,
longitude float,
indexVersion int not null,
constraint fk_establishment_beacon foreign key (idBeacon) references Beacon (idBeacon));
我想在更新信息的地方增加indexVersion。
所以我用的是扳机
CREATE OR REPLACE FUNCTION inc_indexVersion()
RETURNS trigger AS
$BODY$
BEGIN
UPDATE establishment SET NEW.indexversion = OLD.indexversion +1;
RETURN NULL;
END;
$BODY$
LANGUAGE plpgsql;
CREATE TRIGGER inc_trigger
AFTER UPDATE
ON Establishment
FOR EACH ROW
EXECUTE PROCEDURE inc_indexVersion();
但问题出在新的.indexversion上
我怎么做?Thx我找到了解决方案:
CREATE OR REPLACE FUNCTION inc_indexVersion()
RETURNS trigger AS
$BODY$
BEGIN
NEW.indexversion = OLD.indexversion +1;
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql;
CREATE TRIGGER inc_trigger
BEFORE UPDATE
ON Establishment
FOR EACH ROW
EXECUTE PROCEDURE inc_indexVersion();
Thx.您到底遇到了什么问题?它无法识别“新建”。->当我删除新的和旧的时,记录新建尚未受到影响,我认为它会在更新时循环。这是用于什么RDBMS(以及什么版本)?