|
Полученить скрипт на создание всего, кроме таблиц.
|
|||
---|---|---|---|
#18+
Меня интересует можно ли как-нибудь из "эталонной схемы" получить скрипты на создание всех CONSTRAINT-ов, INDEX-ов и пр. Нашел такой способ как, Код: plaintext
1. между запросами надо вставлять точку с запятой ";"; 2. удалять создание уникального индекса для первичного ключа, т.к. индекс создается автоматически. Скрипты формирую так: Код: plaintext 1. 2. 3. 4. 5.
В общем, вроде бы, все описал. Подскажите кто, что может... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2009, 10:46 |
|
Полученить скрипт на создание всего, кроме таблиц.
|
|||
---|---|---|---|
#18+
1 - Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2009, 10:50 |
|
Полученить скрипт на создание всего, кроме таблиц.
|
|||
---|---|---|---|
#18+
aleksandy2. удалять создание уникального индекса для первичного ключа, т.к. индекс создается автоматически. Что то подобное было. Я поступил прагматически, опираясь на семантику имен - фильтровать Ваш запрос, чтобы имя индекса отличалось от имени констрейнта. Тогда генерируемые индексы в него не попадут. Хотя это не стопроцентно чистое решение, возиожно есть и более "чистый" путь. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2009, 11:00 |
|
Полученить скрипт на создание всего, кроме таблиц.
|
|||
---|---|---|---|
#18+
dmidekaleksandy2. удалять создание уникального индекса для первичного ключа, т.к. индекс создается автоматически. Что то подобное было. Я поступил прагматически, опираясь на семантику имен - фильтровать Ваш запрос, чтобы имя индекса отличалось от имени констрейнта. Тогда генерируемые индексы в него не попадут. Хотя это не стопроцентно чистое решение, возиожно есть и более "чистый" путь. ... вдогонку. И соответственно для индексов использовать не get_dependent_ddl, а get_ddl.....from user_indexes where table_name = .... and index_name not in (select constraint_name from user_constraints .... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2009, 11:02 |
|
Полученить скрипт на создание всего, кроме таблиц.
|
|||
---|---|---|---|
#18+
За ответ на первый вопрос спасибо. А что делать со вторым? Может можно как-то отключить spool, а потом включить но уже на добавление? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2009, 11:05 |
|
Полученить скрипт на создание всего, кроме таблиц.
|
|||
---|---|---|---|
#18+
dmidek, В dba_constraints есть поле index_name (from docs - only showing for unique and primary key constraints). Best regards Maxim ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2009, 11:10 |
|
Полученить скрипт на создание всего, кроме таблиц.
|
|||
---|---|---|---|
#18+
Maxim Demenkodmidek, В dba_constraints есть поле index_name (from docs - only showing for unique and primary key constraints). Best regards Maxim Вот, Максим, точно, я чувствовал, что есть что то гораздо чище :-) И ведь вроде помнил про это поле... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2009, 11:11 |
|
Полученить скрипт на создание всего, кроме таблиц.
|
|||
---|---|---|---|
#18+
dmidekMaxim Demenkodmidek, В dba_constraints есть поле index_name (from docs - only showing for unique and primary key constraints). Best regards Maxim Вот, Максим, точно, я чувствовал, что есть что то гораздо чище :-) И ведь вроде помнил про это поле... Хотя....А если сначала положится индекс, а затем на поле ляжет констрейнт, то констрейнт подхватит старый индекс, новый генерироваться не будет и имена могут различаться. Так можно например класть неуникальный индекс на ПК. Так что может быть вариант с проверкой совпадения имен даст нам дополнительную страховку... Хотя если у топикстартера такие варианты есть, то от него потребуется четкая последовательность действий по генерации - а именно для описанного случая, сначала индекс , потом констрейнт ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2009, 11:16 |
|
Полученить скрипт на создание всего, кроме таблиц.
|
|||
---|---|---|---|
#18+
Пока писал спасиб за первый ответ. Ответили на второй. :) Всем спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2009, 11:29 |
|
Полученить скрипт на создание всего, кроме таблиц.
|
|||
---|---|---|---|
#18+
dmidek, если создавать сначала индексы, затем констрейнты, то проверки не нужны (ddl генерируется с using index). Хотя, всеравно возможна некоторая недетерминированность. Предположим, есть 2 индекса кандидата для одного констрейнта - тогда констрейнт будет повешен на тот индекс, который создан раньше ( по крайней мере - такое поведение я наблюдал, хотя может быть и ошибаюсь), в этом случае, если очередность в запуске скриптов будет изменена, то констреинт будет поддерживаться другим индексом, по сравнению с оригинальной схемой. Best regards Maxim ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2009, 11:47 |
|
Полученить скрипт на создание всего, кроме таблиц.
|
|||
---|---|---|---|
#18+
Maxim DemenkoПредположим, есть 2 индекса кандидата для одного констрейнта А поподробнее можно? Каким это образом может быть 2 кандидата? Например, я получаю вот такой скрипт на создание первичного ключа. Код: plaintext 1. 2. 3. 4.
А как может быть 2 одинаково именованных индекса? Когда второй запрос на создание индекса кинет эксепшн. Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2009, 12:03 |
|
Полученить скрипт на создание всего, кроме таблиц.
|
|||
---|---|---|---|
#18+
aleksandy, Код: 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. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69.
Best regards Maxim ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2009, 12:21 |
|
Полученить скрипт на создание всего, кроме таблиц.
|
|||
---|---|---|---|
#18+
Maxim Demenko, Т.е. такая ситуация может возникнуть, если поле присутствует в нескольких индексах. А в случае когда поле id используется только в одном индексе (который создается для первичного ключа), то можно "закрыть глаза" на возможную недетерминированность. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2009, 12:49 |
|
|
start [/forum/topic.php?fid=52&tid=1926432]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 157ms |
0 / 0 |