|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Stax, Если верить доке, то именно для unique index - есть. ничего не помешает создать одноимённый unique constraint поверх другого индекса. упд. andrey_anonymous, Да, погорячился. Надо было проверить. упд2. Тогда получается ошибка в сообщении об ошибке ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 15:40 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
andrey_anonymous Stax так есть констраинт у таблички test, или нет? Нет. а оракля говорит что нарушен констраинт которого нет ORA-00001: unique constraint (STAX.I$TEST$ID) violated ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 15:43 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Stax а оракля говорит что нарушен констраинт которого нет Наябедничал :) А вот в PL/SQL оно ловится на DUP_VAL_ON_INDEX даже на неуникальном индексе, и что? В данном случае oracle швыряется ORA-00001 и от индекса, и от констрейнта. ...для эстетов: можно поправить базу сообщений и пусть с днем варенья поздравляет. Хинт: текст сообщения лежит на клиенте, выводится по коду -1 от facility ORA. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 15:50 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
andrey_anonymous Stax а оракля говорит что нарушен констраинт которого нет Наябедничал :) А вот в PL/SQL оно ловится на DUP_VAL_ON_INDEX даже на неуникальном индексе, и что? В данном случае oracle швыряется ORA-00001 и от индекса, и от констрейнта. ...для эстетов: можно поправить базу сообщений и пусть с днем варенья поздравляет. Хинт: текст сообщения лежит на клиенте, выводится по коду -1 от facility ORA. раз 1* select * from dba_constraints where table_name='TEST' SQL> / no rows selected то констраинта нет, но сообщение о констраинте если поменять текст, то он поменяется и в случае нарушения существующего констраинта и не только на клиенте Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
ps фк хочет именно констраинта (почему-то индекса ему мало) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 16:18 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Stax фк хочет именно констраинта (почему-то индекса ему мало) Вооот, это уже ближе к теме... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 16:31 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
andrey_anonymous Хинт: текст сообщения лежит на клиенте Во-вторых, текст сообщения передаётся с сервера. Клиентский файл не играет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 16:47 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Elic andrey_anonymous Хинт: текст сообщения лежит на клиенте Во-вторых, текст сообщения передаётся с сервера. Клиентский файл не играет. 1. Клиент есть всегда. Сервер тоже временами клиент. 2. Был неправ, клиентский msb для серверных сообщений не играет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 17:08 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
andrey_anonymous Elicклиент не всегда имеет место быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 17:32 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Stax фк хочет именно констраинта (почему-то индекса ему мало) Потому что фк относится к миру ограничений целостности, а индекс относится к миру поисковых механизмов, то что технически уникальный индекс накладывает определенные ограничения и частично покрывает функции ограничения уникального ключа, никак не переводит индекс в разряд ограничений целостности. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 18:32 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
graycode Stax фк хочет именно констраинта (почему-то индекса ему мало) Потому что фк относится к миру ограничений целостности, а индекс относится к миру поисковых механизмов, то что технически уникальный индекс накладывает определенные ограничения и частично покрывает функции ограничения уникального ключа, никак не переводит индекс в разряд ограничений целостности. ето все понятно (у меня притензий к ФК нет, даж мож и добре что требует констраинта) повторно но ORA-00001: говорит о констраинте, которого как бы нет ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 10:01 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Stax повторно но ORA-00001: говорит о констраинте, которого как бы нет ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 10:02 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Stax, Одно сообщение на нарушение уникальности, не стали делать переменную для подстановки index/constraint. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 10:04 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Stax, Ты можешь создать триггер и проверять в нем какие то сложные ограничения бизнес-логики, в случае нарушения кидать исключение, триггер это constraint? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 12:39 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
graycode Stax, Ты можешь создать триггер и проверять в нем какие то сложные ограничения бизнес-логики, в случае нарушения кидать исключение, триггер это constraint? триггер не констраинт ps не знаю как в триггере обеспечить уникальность не блокируя ресурс (аля монопольный режим) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 12:46 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
env Stax, Одно сообщение на нарушение уникальности, не стали делать переменную для подстановки index/constraint. так я ж очем не стали и фиг с ними, фича кстати, если есть констраинт, то сорится именно на него (не на индекс) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 12:48 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
graycode Stax, Ты можешь создать триггер и проверять в нем какие то сложные ограничения бизнес-логики, в случае нарушения кидать исключение, триггер это constraint? Нет. Constraint - это декларативное объявление. Отсутствующий до сих пор Assert - это constraint, а триггер - нет. Триггер - это код, реализуемый с помощью sql procedural extension, в рамках той или иной событийной модели. Это солома которую предлагается использовать в условиях невозможности или сознательного отказа от реализации логических бизцес-правил декларативным путем. Конопли не дадим, но вот тебе пенька, делай с ней что хош. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 13:02 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Stax триггер не констраинт ps не знаю как в триггере обеспечить уникальность не блокируя ресурс (аля монопольный режим) ..... stax Прогресс есть, но мухи все еще перемешаны с котлетами, осталось отделить ограничения целостности и конкретную их реализацию, поскольку это совершенно разные понятия. Уникальность записи это ограничение целостности, а как именно ты будешь его добиваться, это уже реализация и индекс используется именно в качестве реализации. Когда ты создаешь уникальный индекс, то Oracle вполне вправе предположить, что ты реализуешь какое то свое кастомное ограничение уникальности и генерировать соответствующую ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 14:31 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Stax env, так есть констраинт у таблички test, или нет? .... stax Как сказал Билл Клинтон, "зависит от определения слова constraint". Я бы сказал что уникальный индекс накладывает на колонку/+и constraint. То, что он активен, но не показывается ожидаемой командой оракла, скорее недосмотр который со временем могут исправить. Если WiFi не показывается в списке, или \\win\share$ не показан в эксплорере, это не значит что их нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 06:46 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Уточнение: я предположил что индекс невозможно обмануть. По поводу исполнения constraint в триггере; опытные товарищи отметились что в триггере такое сделать невозможно, не блокируя ресурс. Почему это так? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 06:53 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
НеофитSQL Уточнение: я предположил что индекс невозможно обмануть. По поводу исполнения constraint в триггере; опытные товарищи отметились что в триггере такое сделать невозможно, не блокируя ресурс. Почему это так? попробуйте реализовать в триггере (мож у Вас со свежим взглядом невозможное станет возможным) ps обман обману рознь (игноре ров он .... ) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 09:37 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Stax НеофитSQL Уточнение: я предположил что индекс невозможно обмануть. По поводу исполнения constraint в триггере; опытные товарищи отметились что в триггере такое сделать невозможно, не блокируя ресурс. Почему это так? попробуйте реализовать в триггере (мож у Вас со свежим взглядом невозможное станет возможным) ps обман обману рознь (игноре ров он .... ) ..... stax Я сделал constraint на колонку id в триггере таблицы test23 таким образом. Для примера - только для вставки. Код: plsql 1. 2. 3. 4. 5. 6. 7.
Вроде работает. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 18:51 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
НеофитSQL, Использование юника на соседней таблице в триггере для текущей в контексте этой темы это что-то вроде: интернеты- Я прекрасно понимаю семантику вопроса, но полностью игнорирую его суть. - Вы могли бы привести пример? - Мог бы. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 09:38 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
env, Механика логики триггера в этом вопросе не является принципиальной, меня интересовало мнение Stax (и других), почему constraint уникальности невозможно реализовать в триггере, хотя другие (построчные) вполне можно. Я мог бы триггер написать и без использования constraint других таблиц, если это важно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 17:32 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
НеофитSQL если это важно. важно ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 17:39 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
НеофитSQL Я мог бы триггер написать и без использования constraint других таблиц, если это важно. Важно. Сделайте реализацию ограничения уникальности на одной таблице триггером для этой таблицы, без использования unique index/constraint на любой таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 17:47 |
|
|
start [/forum/topic.php?fid=52&msg=40016776&tid=1880718]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 296ms |
total: | 454ms |
0 / 0 |