powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Задачка
25 сообщений из 145, страница 3 из 6
Задачка
    #33319028
Stax.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создать уникальный fbi индекс,
имхо он должен строится построчно

но я неуверен что это правильно,
не сильно понимаю как отреагирует на обман оракля
.....
Stax
...
Рейтинг: 0 / 0
Задачка
    #33319033
Stax.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vint Stax.Как вычислите номер?

Код: plaintext
select count( 1 )+ 1  from t where family = 'Иванов'


Уже писали, не увидите незакомиченные
попробуйте в нескольких сесиях

......
Stax
...
Рейтинг: 0 / 0
Задачка
    #33319039
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax. Vint Stax.Как вычислите номер?

Код: plaintext
select count( 1 )+ 1  from t where family = 'Иванов'


Уже писали, не увидите незакомиченные
попробуйте в нескольких сесиях

......
Stax
Видимо вы просмотрели дополнение о уникальном констрэйнсе на фамилию и доп столбец:)
...
Рейтинг: 0 / 0
Задачка
    #33319040
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax.создать уникальный fbi индекс,
имхо он должен строится построчно

но я неуверен что это правильно,
не сильно понимаю как отреагирует на обман оракля
.....
StaxЧто-то идея не совсем ясна
Можно подробней?
...
Рейтинг: 0 / 0
Задачка
    #33319045
Sxak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати а чем эта идея то не нравится?
Владимир БегунБазовая идея тут . Это не триггер, но для некоторых случаев позволяет решить задачку. Кодирование, обход мутаций и обеспечение целостности данных при конкурентном изменении данных в таблице -- это ряд вещей, над которыми приходится задумываться решая эту и подобные ей задачи используя DIY-методы.
Я в принципе перебежчик с 7го оракла не знаю были ли там mater.view по р мере не работал с ними но как я понимаю иде красивая.. По сути получается отлож ограничение до коммита если я правильно понял
...
Рейтинг: 0 / 0
Задачка
    #33319048
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vint
Видимо вы просмотрели дополнение о уникальном констрэйнсе на фамилию и доп столбец:)delete from t where ... and "доп столбец"=2
...
Рейтинг: 0 / 0
Задачка
    #33319066
Stax.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я могу сделать индекс
Но я сразу говорю, что у себя я токое б не внедрял
подозреваю что будет слетать
Так ради трепа

или не надо даже браться?
....
stax
...
Рейтинг: 0 / 0
Задачка
    #33319078
Stax.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VintВидимо вы просмотрели дополнение о уникальном констрэйнсе на фамилию и доп столбец:)
нет не просмотрел,
доп поле надо заполнить в тригере ,
вот и спрашиваю как

ЗЫ
со мной можно и надо на ты
.......
Stax
...
Рейтинг: 0 / 0
Задачка
    #33319081
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров Vint
Видимо вы просмотрели дополнение о уникальном констрэйнсе на фамилию и доп столбец:)delete from t where ... and "доп столбец"=2
да если удалить 2 то 1 и 3 остються, конечно можно вычислять дырку но как то получаеться сложно и громоздко решение, намного проще с блокировками сделать ИМХО
...
Рейтинг: 0 / 0
Задачка
    #33319082
Stax.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SxakКстати а чем эта идея то не нравится?
....


почему не нравится, мож и нравится,
но нет у меня знаний насчет снапшотов

імхо
да и слетать будет сомміт а не інсерт
что там флейміть не знаю я єтого
......
Stax
...
Рейтинг: 0 / 0
Задачка
    #33319088
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax.
ЗЫ
со мной можно и надо на ты
.......
Stax
ЗЫ
Не надо, и не можно ))), главное в человеке воспитание, вот приличной встрече как нить и определимся, а пока будем с вами обсчаться так )))
...
Рейтинг: 0 / 0
Задачка
    #33319095
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров Вячеслав Любомудров Elic Вячеслав ЛюбомудровЕще как вариант - выставлять пользовательскую блокировку для изменяемой фамилии (dbms_lock), но это жуткая сериализацияМожно делать select for update для проверяемых однофомильцев. Сессия, желающая проверить ту же фамилию, будет ждать.Имелось ввиду и добавляемой и удаляемой - алгоритм Stax расписалНу и на обновление фамилии, соответственно, две блокировки - так что сериализация вааще крутая будетСериализация в пределах одной фамилии и к тому же в операторном режиме - imho, совсем не проблема.
Другое дело, что это просто не работает в определённых случаях: SxakЕсли только начали вставлять (нет еще однофамильцев) то ждать она ничего не будет и пока не закоммитили можно наделать кучу незакоммиченных сессий с такой же фамилией.

Кстати, при помощи dbms_lock вообще нельзя осуществить пофамильную блокировку.
...
Рейтинг: 0 / 0
Задачка
    #33319098
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vint Stax.
ЗЫ
со мной можно и надо на ты
.......
Stax
ЗЫ
Не надо, и не можно ))), главное в человеке воспитание, вот приличной встрече как нить и определимся, а пока будем с вами обсчаться так )))Тады уж старайся общаться грамотно

Меня, например, больше коробит обращение на "вы" (с маленькой буквы), чем на "ты" (без гадостей, естественно ;-))
...
Рейтинг: 0 / 0
Задачка
    #33319099
Stax.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров
Что-то идея не совсем ясна
Можно подробней?
мне просто лень создавать,
если уже известно что это гиблая идея,
то зачем буду мучить (позорится)
у меня и так ляпов хватает

ведь есть простое имхо правильное решение

ps
придется попробовать
.....
Stax
...
Рейтинг: 0 / 0
Задачка
    #33319102
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicКстати, при помощи dbms_lock вообще нельзя осуществить пофамильную блокировку.Почему?
...
Рейтинг: 0 / 0
Задачка
    #33319111
Sxak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic SxakЕсли только начали вставлять (нет еще однофамильцев) то ждать она ничего не будет и пока не закоммитили можно наделать кучу незакоммиченных сессий с такой же фамилией.

Кстати, при помощи dbms_lock вообще нельзя осуществить пофамильную блокировку.Стоп. Там по номеру лочится так? А номер то можно задать хеш-фцией от фамилии или я ошибаюсь?:-)
...
Рейтинг: 0 / 0
Задачка
    #33319123
Падонак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicКстати, при помощи dbms_lock вообще нельзя осуществить пофамильную блокировку.
опять незачот
...
Рейтинг: 0 / 0
Задачка
    #33319131
Stax.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic
Кстати, при помощи dbms_lock вообще нельзя осуществить пофамильную блокировку.
Пачему?
мона блокировать и по хешу,
ну что хеш совпадет, тут вероятнось маленькая,
не в космос же летим

В моей жизни бывает проще
1 не вставляют пачками в отделе кадров,
так что мона забится на одиночный инсерт

2 фамилий этих не так уж и много, это не милионы

......
Stax
...
Рейтинг: 0 / 0
Задачка
    #33319135
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если бы данная проблема просто решалась думаю разработчики oracla предоставили возможность писать селекты в check`ах, это было бы иногда очень полезно. но всегда связанно с проблеммами многопользовательского режима, а в данном случае по моему единого решения нет, и автору придеться выбирать из предложенных и мериться с конкретными недостатками конкретного решения

ЗЫ
Вячеслав Любомудров
Тады уж старайся общаться грамотно
Меня, например, больше коробит обращение на "вы" (с маленькой буквы), чем на "ты" (без гадостей, естественно ;-))
Подскажите пожалуйста, а где написано что обращение на Вы в русском языке пишеться с большой буквы(конечно я может быть млохо учился в школе не помню правил ), мне с детсва вдолбили в голову что обрашение к старшим и незнакомым людям всегда на ВЫ, поэтому я и стараюсь обсчаться с участниками форума на ВЫ, очень редко когда достают некоторые отдельно взятые личности перехожу на ты(просто нервничаю и это передаеться в интонациях)
...
Рейтинг: 0 / 0
Задачка
    #33319138
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sxak ElicКстати, при помощи dbms_lock вообще нельзя осуществить пофамильную блокировку.Стоп. Там по номеру лочится так? А номер то можно задать хеш-фцией от фамилии или я ошибаюсь?:-)Единственный способ получить уникальный номер блокировки - это dbms_lock.allocate_unique, который в триггере использовать нельзя. Все остальные способы не гарантируют отсутствие конфликтов.
...
Рейтинг: 0 / 0
Задачка
    #33319146
Sxak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic Sxak ElicКстати, при помощи dbms_lock вообще нельзя осуществить пофамильную блокировку.Стоп. Там по номеру лочится так? А номер то можно задать хеш-фцией от фамилии или я ошибаюсь?:-)Единственный способ получить уникальный номер блокировки - это dbms_lock.allocate_unique, который в триггере использовать нельзя. Все остальные способы не гарантируют отсутствие конфликтов.А зачем обязателнь оуникальный? Ну будет происходить ожидание не на той фамилии иногда но редко. Разве ето критично?
...
Рейтинг: 0 / 0
Задачка
    #33319158
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VintПодскажите пожалуйста, а где написано что обращение на Вы в русском языке пишеться с большой буквы(конечно я может быть млохо учился в школе не помню правил ), мне с детсва вдолбили в голову что обрашение к старшим и незнакомым людям всегда на ВЫ, поэтому я и стараюсь обсчаться с участниками форума на ВЫ, очень редко когда достают некоторые отдельно взятые личности перехожу на ты(просто нервничаю и это передаеться в интонациях) http://www.gramota.ru/dic/search.php?word=%E2%FB&lop=x&gorb=x&efr=x&zar=x&ag=x&ab=x&lv=x&pe=x&az=x устроит?
...
Рейтинг: 0 / 0
Задачка
    #33319163
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicЕдинственный способ получить уникальный номер блокировки - это dbms_lock.allocate_unique, который в триггере использовать нельзя. Все остальные способы не гарантируют отсутствие конфликтов.Автономная транзакция?
...
Рейтинг: 0 / 0
Задачка
    #33319185
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
tst> create or replace function get_unique(name varchar2) return varchar2 as
   2       pragma autonomous_transaction;
   3       handle varchar2( 128 );
   4   begin dbms_lock.allocate_unique(name, handle);
   5       commit;
   6       return handle;
   7   end;
   8   /

Function created.

tst> create table t1(a varchar2( 128 ));

Table created.

tst> create trigger trg_t1
   2   before insert on t1
   3   for each row
   4   begin :new.a := get_unique(:new.a);
   5   end;
   6   /

Trigger created.

tst> insert into t1
   2   select 'One' a from dual
   3   union all select 'Two' from dual;

 2  rows created.

tst> select * from t1;

A
--------------------------------------------------------------------------------
 10737418241073741824147 
 10737418251073741825148 
...
Рейтинг: 0 / 0
Задачка
    #33319207
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров http://www.gramota.ru/dic/search.php?word=%E2%FB&lop=x&gorb=x&efr=x&zar=x&ag=x&ab=x&lv=x&pe=x&az=x устроит?
Спасибо постараюсь исправиться хотя это и трудно.
...
Рейтинг: 0 / 0
25 сообщений из 145, страница 3 из 6
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Задачка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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