Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
05.02.2008, 19:51
|
|||
|---|---|---|---|
|
|||
Generated by... |
|||
|
#18+
Доброе время суток! Есть такой вопрос по БД DB2 8.2 для LUW. Создана таблица с полем ID для которого GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1, NO CACHE) Получается, что я могу инсертить значения в ID или принудительно или по умолчанию туда будут вставляться значения генерируемы +1. Возникла такая проблема...вручную был внесен ID = 18 и когда попытка внести значение по умолчанию DB2 поругался сказав, что ...from having duplicate rows for those columns Я так понял, что не смог внести значение потому что такое значение уже есть. Можно ли как нить в будущем избежать таких ситуаций? Поможет ли если я увеличу значение CACHE до 10 или 20? PS: вот полная ошибка: DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL0803N One or more values in the INSERT statement, UPDATE statement, or foreign key update caused by a DELETE statement are not valid because the primary key, unique constraint or unique index identified by "1" constrains table "DB2ADMIN.TEST" from having duplicate rows for those columns. SQLSTATE=23505 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.02.2008, 09:05
|
|||
|---|---|---|---|
Generated by... |
|||
|
#18+
Согласно объявлению область генерируемых значений начинается с 1 (START WITH 1) в сторону увеличения. Решение - вставляй только отрицательные ID - вставляй в "дыры", которые найдешь в интервале 1 - max(ID) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.02.2008, 10:06
|
|||
|---|---|---|---|
|
|||
Generated by... |
|||
|
#18+
Добрый день. датфВозникла такая проблема...вручную был внесен ID = 18 и когда попытка внести значение по умолчанию DB2 поругался сказав, что ...from having duplicate rows for those columns Я так понял, что не смог внести значение потому что такое значение уже есть.DB2 гарантирует, что для generated поля она САМА будет генерировать уникальные значения. На ваши команды изменения этого поля она не обращает внимания. При этом автоматически никаких уникальных ограничений на это поле не создается. Значение вы не смогли внести, т.к. вы сами на это поле сделали уникальное ограничение. датфМожно ли как нить в будущем избежать таких ситуаций? Поможет ли если я увеличу значение CACHE до 10 или 20?CACHE здесь ни при чем. Избежать ошибки вы можете: - сняв уникальное ограничение - сделав alter table TTT alter ID restart with 19 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.02.2008, 11:16
|
|||
|---|---|---|---|
Generated by... |
|||
|
#18+
по-моему тут нужно просто еще раз попытаться ввести значение по умолчанию. т.е. повторить statement который привел к ошибке. след. значение кот db2 сгенерит будет 19 к сожалению проверить не на чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.02.2008, 12:28
|
|||
|---|---|---|---|
Generated by... |
|||
|
#18+
Mark BarinsteinДобрый день. DB2 гарантирует, что для generated поля она САМА будет генерировать уникальные значения. На ваши команды изменения этого поля она не обращает внимания. При этом автоматически никаких уникальных ограничений на это поле не создается. Значение вы не смогли внести, т.к. вы сами на это поле сделали уникальное ограничение. А разве это не когда стоит GENERATED ALWAYS? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.02.2008, 13:28
|
|||
|---|---|---|---|
|
|||
Generated by... |
|||
|
#18+
dmatsyninА разве это не когда стоит GENERATED ALWAYS?Что именно? Генерация уникальных значений, если значение не указано явно? Это в любом случае. Разница между always и by default только в том, что при by default можно и самому в это поле писАть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.02.2008, 16:31
|
|||
|---|---|---|---|
|
|||
Generated by... |
|||
|
#18+
db2 не гарантирует уникальность полей generated by default если такие поля заполнялись "вручную". Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.02.2008, 16:58
|
|||
|---|---|---|---|
|
|||
Generated by... |
|||
|
#18+
dealkodb2 не гарантирует уникальность полей generated by default если такие поля заполнялись "вручную".То же и для generated always: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=43&mobile=1&tid=1604044]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 369ms |

| 0 / 0 |
