|
|
|
Primary Key column become NULLable during online table redifinition
|
|||
|---|---|---|---|
|
#18+
Зацените феномен, проявляющийся при использовании Online table redefinition : До:OWNER CONSTRAINT_NAMECSEARCH_CONDITIONR_OWNERR_CONSTRAINT_NAMESTATUS DEFERRED VALIDATEDINVALIDCOLUMN_NAMEPOSITIONNCLFXINT_OWNERT1_PK P ENABLEDIMMEDIATEVALIDATED TRADE_ID 1N После:OWNER CONSTRAINT_NAMECSEARCH_CONDITIONR_OWNERR_CONSTRAINT_NAMESTATUS DEFERRED VALIDATEDINVALIDCOLUMN_NAMEPOSITIONNCLFXINT_OWNERT1_PK P ENABLEDIMMEDIATEVALIDATED TRADE_ID 1Y Код: 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. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 19:07:31 |
|
||
|
Primary Key column become NULLable during online table redifinition
|
|||
|---|---|---|---|
|
#18+
--Eugene--, а где криминал? просто железная пила решила указать автору тая redefinition, что он жжёт ;) попробуйте в исходной таблице добавить явно not null в спецификацию столбца ключа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 10:20:51 |
|
||
|
Primary Key column become NULLable during online table redifinition
|
|||
|---|---|---|---|
|
#18+
orawish, Криминал в том, что руками (без redefinition) вы такого сделать не сможете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 11:07:34 |
|
||
|
Primary Key column become NULLable during online table redifinition
|
|||
|---|---|---|---|
|
#18+
--Eugene--, В этом никакого криминала нет. Тем более, что имея шаловливые ручки и доступ к таблицам словаря можно и не такое. Криминал будет если после этого полетят планы запросов. Null то все одно не должно давать вставлять. Если дает, то это уже тянет не просто на криминал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 11:22:51 |
|
||
|
Primary Key column become NULLable during online table redifinition
|
|||
|---|---|---|---|
|
#18+
вероятно перенос констрейнтов реализован непосредственным копированием словарных yданных и ветвление кода про ПК ревлизовано без nullable. в некоторых версиях ПК не давал в словаре nullable, только в сочетании с not null. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 11:42:19 |
|
||
|
Primary Key column become NULLable during online table redifinition
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевNull то все одно не должно давать вставлять. Если дает, то это уже тянет не просто на криминал...даёт, даёт )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 11:56:38 |
|
||
|
Primary Key column become NULLable during online table redifinition
|
|||
|---|---|---|---|
|
#18+
Новая таблица может быть точно такой же как и исходная (без партиционирования, без изменения столбцов) Заголовок Код: 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. 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. 70. 71. 72. 73. 74. в результате имеем Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. NULL вставляется. alter table t1 enable validate constaint t1_pk; не помогает. в доке 11.2 copy_constraints TRUE = clone constraints, FALSE = do nothing. If compatibility setting is 10.2 or higher, then clone CHECK and NOT NULL constraints P.S. Похоже баг специфичен для версии, платформы. Для линукса x86 11.2.0.4 64-bit есть виндоус 11.2.0.1 64-bit нет - t1_pk получается в 'NOT VALIDATED' и после alter ... enable столбец получается not null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 16:08:12 |
|
||
|
Primary Key column become NULLable during online table redifinition
|
|||
|---|---|---|---|
|
#18+
--Eugene--даёт, даёт )) С другой стороны добавить же not null constraint она не мешает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 16:50:12 |
|
||
|
Primary Key column become NULLable during online table redifinition
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевС другой стороны добавить же not null constraint она не мешает?Даже если я добавлю ALTER TABLE T1 ADD CONSTRAINT C1 CHECK(TRADE_ID IS NOT NULL), это не сделает колонку NOT-NULLABLE. Нужно делать ALTER TABLE T1 MODIFY (TRADE_ID NOT NULL). Только после этого оптимизатор начнет выбирать более оптимальный план на основе того что колонка не может быть пустой. Хотя, это не важно сейчас. А что касается вашего вопроса, вы и правда считаете что это нормальное поведение СУБД ? Нет, я бы еще понял, если бы NULL в качестве PK можно было вставить только один раз)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 19:59:28 |
|
||
|
Primary Key column become NULLable during online table redifinition
|
|||
|---|---|---|---|
|
#18+
--Eugene-- вы и правда считаете что это нормальное поведение СУБД ? Неа. Но воркараунд не сложный. Просто надо быть более внимательным при выполнении redefinition. Ну или заказать Oracle, чтоб они пофиксили это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 08:29:58 |
|
||
|
Primary Key column become NULLable during online table redifinition
|
|||
|---|---|---|---|
|
#18+
--Eugene--Нет, я бы еще понял, если бы NULL в качестве PK можно было вставить только один раз)) А вот это уже расхождение с идеологией Oracle. Уникальность здесь проверяет индекс. А Null в него не попадают. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 08:31:12 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39294328&tid=1887645]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
157ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 417ms |

| 0 / 0 |
