Найдено 4 результата

Eugeneus2010
12 сен 2010, 18:25
Форум: Проектирование БД и запросов
Тема: Возможно ли это корректно сделать?
Ответы: 6
Просмотры: 7680

Re: Возможно ли это корректно сделать?

Теоретически-то, конечно, можно, но зачем? Не хватает производительности у запроса? Создай descending индекс на ida, dateb.
Есть доводы за и против. Интересует принципиальная возможность этого варианта.
Eugeneus2010
12 сен 2010, 17:45
Форум: Проектирование БД и запросов
Тема: Возможно ли это корректно сделать?
Ответы: 6
Просмотры: 7680

Re: Возможно ли это корректно сделать?

kdv, спасибо, про блокировку понятно. В моем случае она к большим проблемам привести не должна, в отличие от некорректного значения maxdate. Разве можно обойтись без нее? Зачем постоянно считать max, если в A уже есть максимальная дата, а в триггере известно, что вставляется или обновляется в текуще...
Eugeneus2010
12 сен 2010, 01:07
Форум: Проектирование БД и запросов
Тема: Возможно ли это корректно сделать?
Ответы: 6
Просмотры: 7680

Re: Возможно ли это корректно сделать?

kdv, вопрос как раз в том, как обеспечить целостность данных. CREATE OR ALTER trigger b_aiud0 for b active after insert or update or delete position 0 AS declare variable ida integer; begin update A set maxdate=maxdate where ida=:ida; if (deleting) then ida = old.ida; else ida = new.ida; update A se...
Eugeneus2010
11 сен 2010, 17:34
Форум: Проектирование БД и запросов
Тема: Возможно ли это корректно сделать?
Ответы: 6
Просмотры: 7680

Возможно ли это корректно сделать?

Есть две таблицы create table A (ida integer, maxdate date) create table B (idb integer, ida integer, dateb date) В таблице B может быть произвольное число записей с одинаковым ida. Возможно ли на тригерах так организовать обновление поля maxdate, чтобы оно всегда было равно (select max(dateb) from ...