|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Использую в своей работе pl-sql developer. Попытался с помощью него изменить определение уникального ключа на таблице. Выскочила ошибка и ключ вообще пропал, т.е. в режиме редактирования или просмотра определения таблицы в закладке Ключи в списке его теперь нет, но если нажать на кнопку Посмотреть SQL, то в скрипте его определение появляется. Я пытаюсь удалить этот ключ ALTER TABLE tbl_name DROP CONSTRAINT cnstr_name; Пишет, что ключа с таким именем нет. Смотрю список всех констрейнтов: select * from all_constraints c where c.CONSTRAINT_NAME='cnstr_name'; ну или так select * from all_constraints c where c.TABLE_NAME='tbl_name'; ключа нет. Но он есть и действует, потому что когда я пытаюсь вставить в таблицу что то удовлетворяющее его ограничением, то оракл выдаёт мне ошибку что сработал уникальный ключ и в тексте ошибки присутствует имя этого якобы удалённого ключа. Как можно гарантированно очистить базу от этого ключа? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 12:20 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
а)название темы некорректное. Ни о чем не говорит. б)чудес не быает (по крайней мере, с констрэйнтами). под чудом таки понимаю ошибку вендора субд в)кроме вью all_ бывают вью dba_, которые не подразумевают ограничения по правам г)констрэйнты надо искать не по имени, а по столбцам задействованных таблиц ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 12:41 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Проблема решилась. Когда создаётся уникальный ключ, т.е. уникальный констраент, то автоматом создаётся ещё и индекс. В Pl-SQL developer'е нужно сначала удалить этот индекс, а потом только ключ, иначе ключ удалится, а индекс останется и констрейнт будет продолжать работать. Я ошибся, когда смотришь определение таблицы, то в скрипте на самом деле было видно определение индекса, а не констрейнта. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 12:45 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
verter, upper не пробовали? ... c.CONSTRAINT_NAME=upper('cnstr_name'); ps гляньте все констраинты на табличке зыы констраинта может и "не быть", индекс не даст добавить строку гляньте индексы ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 12:49 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Stax verter, upper не пробовали? ... c.CONSTRAINT_NAME=upper('cnstr_name'); ps гляньте все констраинты на табличке зыы констраинта может и "не быть", индекс не даст добавить строку гляньте индексы ..... stax upper, конечно пробывал и без upper вызывал же список всех констрентов таблицы, все выдавались кроме искомого. ну а с индексами нужно же было сначала догадаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 12:51 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
verter ключа нет. Но он есть и действует, потому что когда я пытаюсь вставить в таблицу что то удовлетворяющее его ограничением, то оракл выдаёт мне ошибку что сработал уникальный ключ Такой индекс либо создаётся автоматически при создании ограничения, либо существует заранее. Во втором случае уникальный индекс не удаляется автоматически при удалении ограничения уникальности. Типичный сценарий второго случая - импорт. verter Как можно гарантированно очистить базу от этого ключа? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 12:51 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Elic verter ключа нет. Но он есть и действует, потому что когда я пытаюсь вставить в таблицу что то удовлетворяющее его ограничением, то оракл выдаёт мне ошибку что сработал уникальный ключ Такой индекс либо создаётся автоматически при создании ограничения, либо существует заранее. Во втором случае уникальный индекс не удаляется автоматически при удалении ограничения уникальности. Типичный сценарий второго случая - импорт. verter Как можно гарантированно очистить базу от этого ключа? Спасибо. Именно так и вышло. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 12:52 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Elic Ограничение уникальности технически реализуется посредством уникального индекса. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 15:57 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
andrey_anonymous Elic Ограничение уникальности технически реализуется посредством уникального индекса. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 22:48 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
чтобы не было подобных проблем, по идее, не стоит городить дополнительной сущноти - констрэйнта. достаточно создавать индекс ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 23:20 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Elic, Кроме автоматического создания уникального индекса, объявление первичного ключа ещё как-то влияет на таблицу, или это чисто декоративный ярлык для помечания "главной" колонки? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 00:06 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Allbest чтобы не было подобных проблем, по идее, не стоит городить дополнительной сущноти - констрэйнта. достаточно создавать индекс ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 00:27 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
НеофитSQL Кроме автоматического создания уникального индекса, объявление первичного ключа ещё как-то влияет на таблицу, или это чисто декоративный ярлык для помечания "главной" колонки? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 00:30 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Elic andrey_anonymous пропущено... Уж от кого-кого, но от тебя как-то не ждал... Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 00:30 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
andrey_anonymous Уж от кого-кого, но от тебя как-то не ждал... О вреде квантора всеобщности… ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 00:40 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Elic НеофитSQL Кроме автоматического создания уникального индекса, объявление первичного ключа ещё как-то влияет на таблицу, или это чисто декоративный ярлык для помечания "главной" колонки? Оракл эксперт Том объясняет, что разница в основном в названии. https://asktom.oracle.com/pls/apex/f?p=100:11:::::P11_QUESTION_ID:4941517587762 Вот и все "жемчуга". ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 00:46 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Доки оракла пишут, что constraint уникальности для PK осуществляется с помощью индекса, которому необязательно быть уникальным. В MsSql вроде так же. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 00:52 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
НеофитSQL разница в основном в названии. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 00:53 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Elic НеофитSQL разница в основном в названии. Иногда, чтобы задать "очевидный" вопрос, требуется свежий взгляд новичка. А вот чтобы грамотно ответить, нужны знания эксперта. Из ответа Тома следует, что любой активный PK можно заменить на уникальный индекс плюс not nullable constraint. А наоборот - не всегда. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 01:01 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Elic Allbest чтобы не было подобных проблем, по идее, не стоит городить дополнительной сущноти - констрэйнта. достаточно создавать индекс Обоснуй ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 01:05 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
НеофитSQL требуется свежий ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 01:11 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
у pl-sql developer всё таки есть глюк. теперь я попытался сначала удалить индекс на уникальный ключ с помощью GUI - ошибка, не могу говорит удалить индекс такой, так а как тогда? ключ удаляю сначала ошибка, индекс - тоже. если дропнуть констрейнт скриптом, то всё корректно удалиться - и ключ и индекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 01:19 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
Elic НеофитSQL требуется свежий У меня цель - узнать больше про Оракл от живых людей. Сегодня я узнал про новую для меня команду pivot, а также про то, что уникальность в ключе можно обеспечить неуникальным индексом. И почитал почему это может быть полезно на практике (deferred, если кому интересно). От Вас я сегодня ничему не научился, вы почему-то не в настроении для продуктивного общения. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 01:28 |
|
глюк Pl-sql developer'а
|
|||
---|---|---|---|
#18+
verter, конкретную ora- то можно узнать? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 01:28 |
|
|
start [/forum/topic.php?fid=52&msg=40015780&tid=1880718]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
140ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 252ms |
0 / 0 |