Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 触发到增量值_Sql_Triggers - Fatal编程技术网

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(以及什么版本)?