У меня есть база данных, содержащая две таблицы.Предполагается, что триггер ON INSERT в таблице ITEMS добавляет значение ITEMS.ITEMSIZE к STATS.SIZE
.Как мне изменить это, чтобы получить только ITEMSIZE текущей строки обновляется.Кстати, таблица STATS имеет только одну строку.
** Tables **
CREATE TABLE ITEMS (
ID ID NOT NULL /* ID = VARCHAR(36) NOT NULL */,
EXPIRYTIME EXPIRYTIME NOT NULL /* EXPIRYTIME = BIGINT NOT NULL */,
ITEMSIZE ITEMSIZE /* ITEMSIZE = BIGINT NOT NULL */,
ACCESSCOUNT ACCESSCOUNT DEFAULT 1 NOT NULL /* ACCESSCOUNT = INTEGER DEFAULT 1 NOT NULL */,
LASTACCESSTIME LASTACCESSTIME /* LASTACCESSTIME = TIMESTAMP NOT NULL */
);
CREATE TABLE STATS (
INSTANCE SMALLINT,
SIZE BIGINT DEFAULT 0,
DISKCACHEITEMCOUNT BIGINT DEFAULT 0,
DISKCACHEHITS BIGINT DEFAULT 0,
DISKCACHEMISSES BIGINT DEFAULT 0
);
** Триггер **
AS
DECLARE ITEM_SIZE bigint;
begin
SELECT ITEMSIZE FROM ITEMS INTO :ITEM_SIZE;
UPDATE STATS SET SIZE = SIZE + :ITEM_SIZE WHERE INSTANCE = '0';
end