|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
На правах задачки, предложенной Stax: можно ли реализовать constraint по колонке вручную из триггера. Вроде можно. Я использовал вспомогательную таблицу для симуляции dirty reads, и SCN для фильтра uncommited изменений. Пример только для insert, update обрабатывается аналогично. Код: plsql 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. 37. 38. 39. 40. 41. 42. 43.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 21:14 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
жесть какая-то. смешались в кучу кони, scn и ... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 21:32 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Заставь дурака богу молиться.... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 21:51 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Трава в "Маями" зачетная. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 21:54 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
НеофитSQL можно ли реализовать constraint по колонке вручную из триггера. Вроде можно. Я использовал вспомогательную таблицу для симуляции dirty reads, и SCN для фильтра uncommited изменений. Пример только для insert, update обрабатывается аналогично. Ты-бы тестировал свои ваяния: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Код: plsql 1. 2.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 21:56 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
SY, Торопился с последним изменением, допустил ошибку. Замените на гугол, SCN точно меньше гугола. Я попробовал с трёх разных сессий, надёжно пресекает попытки создать дупликаты до исполнения любого из коммитов. О... Или это слишком строгое условие уникальности? Тогда ещё проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 04:32 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Красава, че Только вот наличие в целевой табличке надо проверять тоже уже после получения блокировки А также обязательно не забыть выполнять всю эту возню и при UPDATE и при DELETE (проверил ты что запись существует, а она уже удалена, просто не закомичена, обычный ключ бы ждал завершения этой транзакции) Ну и использование явного номера блокировки -- не есть хорошо, Oracle может сам захотеть использовать этот номер. Чтоб его зарегистрировать за определенным именем необходимо выполнить DBMS_LOCK.ALLOCATE_UNIQUE. но это также вызывает COMMIT -- это тоже надо учитывать Про производительность вообще молчу ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 08:05 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров Красава, че ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 10:00 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров Oracle может сам захотеть использовать этот номер. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 10:06 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Elic Вячеслав Любомудров Красава, че То, что не хочет читать доку -- это не совсем так, ссылки-то он на доку дает То, что он пытается перенести аналогии с какого-нибудь 86 ассемблера -- ну оно может и не правильно, но ненаказуемо А вот то, что чел реально изучает новые вещи (тот же DBMS_LOCK) хотя бы просто для того чтоб натянуть нос его пнувшим -- уже достойно уважения ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 10:16 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Elic Вячеслав Любомудров Oracle может сам захотеть использовать этот номер. Вызов DBMS_LOCK.ALLOCATE_UNIQUE будет проверять зарегистрирован ли этот lock_id для какого-нибудь имени (из таблички sys.dbms_lock_allocated), и если нет вполне может его прихватизировать ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 10:20 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров Почему бы и нет? Код: plsql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 10:30 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров А вот то, что чел реально изучает новые вещи (тот же DBMS_LOCK) хотя бы просто для того чтоб натянуть нос его пнувшим -- уже дос В психиатрии таких изолируют и не дискутируют, чтобы не ухудшить их самочувствие. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 10:37 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Elic Вячеслав Любомудров Почему бы и нет? Код: plsql 1. 2.
Код: plaintext 1.
Но у него еще хуже: 1001234567 Насколько понимаю, это вполне может пересечься с обычными (DML) блокировками, что вообще плохо ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 10:46 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Elic Вячеслав Любомудров А вот то, что чел реально изучает новые вещи (тот же DBMS_LOCK) хотя бы просто для того чтоб натянуть нос его пнувшим -- уже дос В психиатрии таких изолируют и не дискутируют, чтобы не ухудшить их самочувствие. Не верю, что ты так никогда не делал Просто вменяемые люди это в продакшн не пускают, но как тренировка -- вполне себе помогает в изучении нового Дык вроде неофит и не говорит, что это надо пускать в продакшн -- просто говорит, что неплохо бы ширше смотреть на вещи, тем более, которые уже много раз поменялись с новыми версиями ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 10:51 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров Elic пропущено... Совать что ни попадя куда не попадя чревато несчастными случаями. В психиатрии таких изолируют и не дискутируют, чтобы не ухудшить их самочувствие. Не верю, что ты так никогда не делал Просто вменяемые люди это в продакшн не пускают, но как тренировка -- вполне себе помогает в изучении нового Дык вроде неофит и не говорит, что это надо пускать в продакшн -- просто говорит, что неплохо бы ширше смотреть на вещи, тем более, которые уже много раз поменялись с новыми версиями Вячеслав, в целом согласен, но он к сожалению еще и новичкам советует... А вот это уже ни в какие ворота не лезет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 11:07 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Согласен Но, например, ответ в Разбиение одного запроса с JOIN на несколько волне себе адекватный (точнее, что пришло на вход, то и получайте на выходе) С отсылкой к RTFM, прошу заметить ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 11:10 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров Насколько понимаю, это вполне может пересечься с обычными (DML) блокировками ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 11:56 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров Согласен Но, например, ответ в ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 11:57 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
НеофитSQL На правах задачки, предложенной Stax: без блокирования ресурса (а так можно вообще лок табле) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 12:03 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров "А что будет если?" Не верю, что ты так никогда не делал У пациента же, в основном, поток сознания. Ещё раз: не стоит тратить время, чтобы с ним спорить. Это типичная цель троллей - сожрать уйму чужого в пустую потраченного времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 12:08 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров натянуть нос его пнувшим ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 12:11 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Дык я вроде и не спорю Но запинывать под шконку молодого и (возможно) перспективного чела, который хоть и хочет все попробовать, но, кстати, весьма адекватно реагирует на критику, это же тоже неправильный подход А как еще молодым изучать Oracle Database? Понятное дело -- в первую очередь курс по Концепциям и далее в зависимости от направления -- Administration или Development Потом, как мне кажется, для обоих очень желательно прочтение двутомника Кайта (пусть он и устарел) Далее просто знать где искать ответы в документации Это я так вижу (у меня это насущная тема, собираюсь увольняться, а замены так за 20 лет и не нарисовалось, вот и пытаюсь сформулировать требования к претендентам) Ну дык у неофита все еще впереди, а что огрызается, так мы тоже не ангелы ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 12:22 |
|
Реализация уникальности без ключей и индексов
|
|||
---|---|---|---|
#18+
Elic Вячеслав Любомудров натянуть нос его пнувшим И просто не ставит так жестко вопрос: или-или Или ты настоящий ораклист или заткнись и сопи в тряпочку ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 12:24 |
|
|
start [/forum/topic.php?fid=52&msg=40018247&tid=1880705]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
137ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 296ms |
total: | 528ms |
0 / 0 |