Есть доводы за и против. Интересует принципиальная возможность этого варианта.Теоретически-то, конечно, можно, но зачем? Не хватает производительности у запроса? Создай descending индекс на ida, dateb.
Найдено 4 результата
- 12 сен 2010, 18:25
- Форум: Проектирование БД и запросов
- Тема: Возможно ли это корректно сделать?
- Ответы: 6
- Просмотры: 7692
Re: Возможно ли это корректно сделать?
- 12 сен 2010, 17:45
- Форум: Проектирование БД и запросов
- Тема: Возможно ли это корректно сделать?
- Ответы: 6
- Просмотры: 7692
Re: Возможно ли это корректно сделать?
kdv, спасибо, про блокировку понятно. В моем случае она к большим проблемам привести не должна, в отличие от некорректного значения maxdate. Разве можно обойтись без нее? Зачем постоянно считать max, если в A уже есть максимальная дата, а в триггере известно, что вставляется или обновляется в текуще...
- 12 сен 2010, 01:07
- Форум: Проектирование БД и запросов
- Тема: Возможно ли это корректно сделать?
- Ответы: 6
- Просмотры: 7692
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...
- 11 сен 2010, 17:34
- Форум: Проектирование БД и запросов
- Тема: Возможно ли это корректно сделать?
- Ответы: 6
- Просмотры: 7692
Возможно ли это корректно сделать?
Есть две таблицы create table A (ida integer, maxdate date) create table B (idb integer, ida integer, dateb date) В таблице B может быть произвольное число записей с одинаковым ida. Возможно ли на тригерах так организовать обновление поля maxdate, чтобы оно всегда было равно (select max(dateb) from ...