Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB2.5.9 Insert срабатывает как Update / 5 сообщений из 5, страница 1 из 1
27.05.2021, 19:18
    #40073634
svd
svd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB2.5.9 Insert срабатывает как Update
Всем привет.

есть таблица
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
CREATE TABLE SRV_PROTOCOL (
    BEGIN_TIME  TIMESTAMP NOT NULL,
    END_TIME    TIMESTAMP NOT NULL,
    PORT        SMALLINT DEFAULT 0,
    OBJ_NAME    VARCHAR(32) NOT NULL,
    ERROR_CODE  INTEGER,
    SRVUPDTIME  TIMESTAMP DEFAULT current_timestamp
);

ALTER TABLE SRV_PROTOCOL ADD CONSTRAINT PK_SRV_PROTOCOL PRIMARY KEY (BEGIN_TIME, END_TIME, OBJ_NAME);

CREATE INDEX SRV_PROTOCOL_IDX1 ON SRV_PROTOCOL (BEGIN_TIME, OBJ_NAME);
CREATE INDEX SRV_PROTOCOL_IDX2 ON SRV_PROTOCOL (OBJ_NAME, BEGIN_TIME);
CREATE INDEX SRV_PROTOCOL_IDX3 ON SRV_PROTOCOL (ERROR_CODE, BEGIN_TIME, OBJ_NAME);
CREATE UNIQUE INDEX SRV_PROTOCOL_IDX4 ON SRV_PROTOCOL (BEGIN_TIME, END_TIME, OBJ_NAME);

SET TERM ^ ;

/* Trigger: SRV_PROTOCOL_BIU10 */
CREATE OR ALTER TRIGGER SRV_PROTOCOL_BIU10 FOR SRV_PROTOCOL
ACTIVE BEFORE INSERT OR UPDATE POSITION 10
AS
DECLARE VARIABLE ZEITRAUM FLOAT;
BEGIN
  ZEITRAUM = NULL;
  SELECT COALESCE(MAX(T1.VAL), 35)
  FROM PARAM T1
  WHERE T1.NAME = 'DEL_ALTDATEN_ZEITRAUM'
  INTO :ZEITRAUM
  ;
  IF (ZEITRAUM IS NOT NULL) THEN
    DELETE
    FROM SRV_PROTOCOL T1
    WHERE T1.BEGIN_TIME < CURRENT_DATE -  :ZEITRAUM
    ;
END
^
SET TERM ; ^



в нее пытаюсь вставит данные:
Код: sql
1.
2.
insert into srv_protocol (begin_time,end_time,obj_name,srvupdtime, error_code, port)
values ('19.04.2021 00:00:00','19.05.2021 00:00:00','SP_JSON_4_TOP5ACHSENFEHLERN_M1',current_timestamp, 0, 5890)



Проверяю данные - все присуствует, все нормально. Добавляю следующую запись:
Код: sql
1.
2.
insert into srv_protocol (begin_time,end_time,obj_name,srvupdtime, error_code, port)
values ('19.04.2021 00:00:00','19.05.2021 00:00:00','SP_JSON_4_TOP5ACHSENFEHLERN_M2',current_timestamp, 0, 5890)



делаю коммит и проверяю данные. Первая запись изчезла, хотя поле являетя ключевым и в команде стоит insert.

Заполняется таблиуа из цикла, но именно именно при SP_JSON_4_TOP5ACHSENFEHLERN_Mх происходит подобный глюк.

В чем не прав?
...
Рейтинг: 0 / 0
27.05.2021, 19:23
    #40073635
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB2.5.9 Insert срабатывает как Update
svdВ чем не прав?

В том, что прописал удаление записей в триггер.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.05.2021, 19:27
    #40073637
svd
svd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB2.5.9 Insert срабатывает как Update
вроде нашел откуда идет удаление. Виноват триггер.
...
Рейтинг: 0 / 0
27.05.2021, 19:35
    #40073638
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB2.5.9 Insert срабатывает как Update
Очередная программа работает как написано, а не как хотелось.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
28.05.2021, 13:18
    #40073779
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB2.5.9 Insert срабатывает как Update
svd,

FLOAT! Ахтунг!
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB2.5.9 Insert срабатывает как Update / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]