Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
16.02.2021, 08:12
|
|||
---|---|---|---|
|
|||
Пересекающиеся периоды записей |
|||
#18+
В таблице 4 поля N1 N2 DATE_START DATE_END Нужна проверка на пересекающиеся периоды Например, вставляю 1 1 07.02.2021 01.01.2025 Далее вставляю 2 2 04.02.2021 01.01.2025 В таблице получится : 1 1 07.02.2021 01.01.2025 2 2 04.02.2021 06.02.2021 Т е запись закрывается с -1 и в таблице может быть только одна запись с 01.01.2025 Дальше если я вставляю 3 3 05.02.2021 , запись уже вписывается в период второй записи и вывести это как ERROR_TEXT( что ошибка пересекающихся периодов) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.02.2021, 12:29
|
|||
---|---|---|---|
|
|||
Пересекающиеся периоды записей |
|||
#18+
Раз нужна проверка, проверяйте. Можно делать её, например, в триггере AFTER INSERT. В чём проблема? P.S. при оформлении кода и примеров данных используйте, пожалуйста, тэг FIXED или SRC. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.02.2021, 12:46
|
|||
---|---|---|---|
Пересекающиеся периоды записей |
|||
#18+
Валерий Юринский В чём проблема? в триггере не видно незакомиченные записи нужно блокировать ресурс ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.02.2021, 12:52
|
|||
---|---|---|---|
Пересекающиеся периоды записей |
|||
#18+
dn33369 В таблице 4 поля N1 N2 DATE_START DATE_END Нужна проверка на пересекающиеся периоды Например, вставляю 1 1 07.02.2021 01.01.2025 Далее вставляю 2 2 04.02.2021 01.01.2025 В таблице получится : 1 1 07.02.2021 01.01.2025 2 2 04.02.2021 06.02.2021 Т е запись закрывается с -1 и в таблице может быть только одна запись с 01.01.2025 Дальше если я вставляю 3 3 05.02.2021 , запись уже вписывается в период второй записи и вывести это как ERROR_TEXT( что ошибка пересекающихся периодов) 1 и 2 пересекаются (2 вхотит в 1), что значит запись закрывается с -1? " я вставляю 3 3 05.02.2021" DATE_END? ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.02.2021, 12:57
|
|||
---|---|---|---|
Пересекающиеся периоды записей |
|||
#18+
Валерий Юринский Можно делать её, например, в триггере AFTER INSERT. В чём проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.02.2021, 14:31
|
|||
---|---|---|---|
|
|||
Пересекающиеся периоды записей |
|||
#18+
Stax Валерий Юринский В чём проблема? в триггере не видно незакомиченные записи нужно блокировать ресурс ..... stax В своей сессии все видно в триггере AFTER INSERT OR UDATE уровня Statement. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.02.2021, 14:32
|
|||
---|---|---|---|
Пересекающиеся периоды записей |
|||
#18+
dn33369, Выносите логику в пакеты и не давайте никому прямого доступа к таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.02.2021, 16:32
|
|||
---|---|---|---|
Пересекающиеся периоды записей |
|||
#18+
1. Создаем таблицу MAP(DT DATE PRIMARY KEY) 2. Создает триггер на нашу таблицу где a) WHEN INSERTING делаем INSERT INTO MAP SELECT :NEW.START_DT + LEVEL - 1 FROM DUAL CONNECT BY :NEW.START_DT + LEVEL - 1 <= :NEW.END_DT b) WHEN DELETING делаем DELETE MAP WHERE DT BETWEEN :OLD.START_DT AND :OLD.NEW_DT c) WHEN UPDATING делаем b) затем a). SY. P.S. Подразумевается все даты на начало дня. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2021, 08:28
|
|||
---|---|---|---|
Пересекающиеся периоды записей |
|||
#18+
dn33369, STFF https://www.sql.ru/forum/actualsearch.aspx?search=???????????????? ?????????&sin=0&bid=3&a=&ma=0&dt=-1&s=1&so=1 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=52&mobile=1&tid=1880428]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 167ms |
0 / 0 |