Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Кто понимает смысл ошибки "Таблица мутирует" ? [Оракл]


Страницы:   1 2 3 4

ANB ©   (2006-09-04 16:06:00) 

В общем то смысл самой ошибки понятен. И как ее избегать я знаю. А вот смыл ее генерации ? Неужели нельзя ораклу было без нее обойтись ? Почему я не могу селекать в триггере изменяющуюся таблицу ?


Sergey13   (2006-09-05 13:01:00) [61]

> [15] ANB ©   (05.09.06 12:39)

Может подняться после сбоя можно было бы и быстрее, но зато существует практически 100% гарантия (при грамотном администрировании разумеется) поднимаемости и сохранности данных в БД на "за мгновение до сбоя". Тот же механизм работает при порче носителя и восстановления из бекапа.


ANB   (2006-09-05 12:39:00) [62]


> Только не в RBS а в Redo

Хрен редьки не слаще. Все равно, по идее, не сильно шустро. Таки так и происходит ?


Sergey13   (2006-09-05 10:20:00) [63]

> [13] ANB ©   (05.09.06 09:57)

Только не в RBS а в Redo. Легко убедиться посмотрев alert файл.


ANB   (2006-09-05 09:57:00) [64]


> А кто-то утверждал, что ORACLE - версионник...

оракл - не версионник. Он иммитация версионника. А вот FB/IB действительно версионники.

Кстати, я понимаю принцип работы транзакций оракла в нормальном режиме. А что происходит в случае сбоя ? Неужто при старте оракл лезет первым делом в RBS и начинает откат слетевших транзакций ?


kaif   (2006-09-05 01:17:00) [65]

А кто-то утверждал, что ORACLE - версионник...
В версионнике как может таблица мутировать?
Вот в IB она никогда не мутируетв режиме ReadCommitted.
Только ногами не бейте...


atruhin   (2006-09-04 20:36:00) [66]

> Тогда вопрос - можно ли в FB в триггере уровня строки селекать
> из изменяемой таблицы

Можно. FB чистый версионник, и он спокойно читает данные не учитывая текущие изменения.


ANB   (2006-09-04 19:17:00) [67]


> Я о ЖарПтице

Во. Тогда вопрос - можно ли в FB в триггере уровня строки селекать из изменяемой таблицы (ну, например, тупая проверка на дубли, хотя это лучше уникальным индексом сделать) ?


Виталий Панасенко   (2006-09-04 19:06:00) [68]


>
> > Val ©   (04.09.06 16:58) [7]
>
> И чего в этой ветке непонятного ? Фактически оракл выполняет
> DDL в отдельной транзакции как один оператор. Что я и хотел
> выяснить.
>
>
> > >> новые после обновления
>
> я имел в виду те, которые уже изменились. Ну как то же тот
> же FB возвращает данные без ошибок (или нет ?) ?

Подтвержденный другой транзакцией и если читающая транзакция - ReadCommited. Можно сделать "снимок", тогда пофигу все остальные тарнзакции - данные будут только те, которые были на момент старта читающей транзакции.Я о ЖарПтице


ANB   (2006-09-04 17:10:00) [69]


> Val ©   (04.09.06 16:58) [7]

И чего в этой ветке непонятного ? Фактически оракл выполняет DDL в отдельной транзакции как один оператор. Что я и хотел выяснить.


> >> новые после обновления

я имел в виду те, которые уже изменились. Ну как то же тот же FB возвращает данные без ошибок (или нет ?) ?


Val   (2006-09-04 16:58:00) [70]

В этой.
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1157033863&n=1&web=1
Столбец N.


Desdechado   (2006-09-04 16:53:00) [71]

Ты не забывай, что возможны варианты с автономными транзакциями в триггерах, которые не откатываются при откате главной. Поэтому винегрет будет еще тот при селектах.
Да и
>> новые после обновления
> Меня бы это вполне устроило.
противоречит
> возвращал мне смесь новых и старых строк - это бы меня
> вполне устроило.

Ну, и на закуску.
Это твоя ЧАСТНАЯ задача, для которой удобнее свои подходы. В других задачах - другое видение. На всех не напасешься.


ANB   (2006-09-04 16:51:00) [72]


> > offtop: а понимание того, почему нет второго столбца (в
>
> > прошлой ветке) уже пришло?
>
> Это в которой ?

Какой столбец ?


ANB   (2006-09-04 16:36:00) [73]


> offtop: а понимание того, почему нет второго столбца (в
> прошлой ветке) уже пришло?

Это в которой ?


ANB   (2006-09-04 16:35:00) [74]


> новые после обновления

Меня бы это вполне устроило. Так и знание того, что часть данных уже изменилось. Вот пусть новые и возвращает. Например : вставляю в триггере проверку, что апдейт не приводит к зацикливанию дерева. Есно, при триггере уровня строки у меня селект завалится. Однако, если бы он не завалился, а возвращал мне смесь новых и старых строк - это бы меня вполне устроило. Причем не важно, в каком порядке бы изменялись записи - сервер все равно про это знает.


Val   (2006-09-04 16:29:00) [75]

>ANB ©   (04.09.06 16:06)
Вас очень задевает данный вопрос, до категоричности, как я посмотрю...Но дело в том, что скл сервера реализованы по-разному и стоит, по-моему, принимать их фичи/баги/реализацию как данность...иначе это принимает глупый вид холивара.
offtop: а понимание того, почему нет второго столбца (в прошлой ветке) уже пришло?


Desdechado   (2006-09-04 16:16:00) [76]

Потому как, логически рассуждая, не известно, какая часть данных уже изменилась, а какая нет. Ведь, например, UPDATE xxx SET yyy=1 затрагивает все записи, но порядок их обновления командой не задается. Поэтому строить логику на неизвестном поведении сервера некорректно (оно может меняться между версиями).
И, также, неизвестно, какие именно данные ты пытаешься селектить в триггере - старые до обновления, новые после обновления или вперемежку.


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо