powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB2.5.9 Insert срабатывает как Update
5 сообщений из 5, страница 1 из 1
FB2.5.9 Insert срабатывает как Update
    #40073634
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

есть таблица
Код: 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
FB2.5.9 Insert срабатывает как Update
    #40073635
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svdВ чем не прав?

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

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


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