Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Автоинкремент в пределах...
|
|||
|---|---|---|---|
|
#18+
Здравствуйте всем! DB2 8.2. Можно ли создать таблицу, в которой значение одного поля автоматически бы инкрементировалось в пределах значения другого поля или набора полей? Например, нужно выполнять автонумерацию в пределах года: Код: plaintext 1. 2. 3. 4. 5. 6. Поле со свойством generated always as identity автоинкрементируется в пределах всех записей. Не подходит. Может, существует другое решение? Буду благодарен за пример. С уважением, Семен Попов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 15:17 |
|
||
|
Автоинкремент в пределах...
|
|||
|---|---|---|---|
|
#18+
Можно сделать предвставочным триггером типа: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 16:38 |
|
||
|
Автоинкремент в пределах...
|
|||
|---|---|---|---|
|
#18+
Понятно. А не будет ли проблем в многопользовательском режиме? Ведь подобным образом можно заменить и свойство generated always as identity , но разработчики почему-то триггеры для реализации этого свойства не используют. Я где-то читал, что это может доставить проблемы. По мне, так было бы хорошо, чтобы пользователь видел будущий номер еще при заполнении формы перед сохранением записи. То есть, перед открытием формы делаю запрос для получения последнего номера, инкрементирую его и предлагаю пользователю. Но беда - при сохранении он уже может быть занят. Придется дополнительно предусмореть и такую ситуацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 17:01 |
|
||
|
Автоинкремент в пределах...
|
|||
|---|---|---|---|
|
#18+
Насчет проблем с триггерами не знаю, но можно попробовать запрос делать с WITH UR. Для генерации новых значений с условием в любом случае надо будет где-то хранить состояние счетчиков. Можно так же добавить в таблицу признак сохраненности, и при отображении формы делать вставку "пустой строки". При окончательном сохранении проставлять признак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 18:24 |
|
||
|
Автоинкремент в пределах...
|
|||
|---|---|---|---|
|
#18+
Semen Popov, Java функция, на вход которой подаётся имя sequence. Для каждого года в таблице заводите свой sequence. Nextval.java Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. javac Nextval.java copy Nextval.class ...\SQLLIB\FUNCTION Nextval.sql Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 18:32 |
|
||
|
Автоинкремент в пределах...
|
|||
|---|---|---|---|
|
#18+
Задача напомнила мне партишионирование-для-бедных, т.е. когда для каждого года создаётся (заранее) отдельная таблица, а потом поверх всех них делается view с union all. Можно ведь и так поступить. А ещё у меня есть большое подозрение, что нам сказали не всё условие задачи, и что на самом деле впридачу ещё нужно, чтобы последовательность в NUM была без дырок. Так что, может, лучше обойтись без sequence-по-годам и вообще поля NUM, а вычислять в запросе через row_number()over(partition by year order by что-нибудь-вроде-таймштампа-вставки). А если всё-таки использовать sequence, не забудьте выключить кеширование sequence и не забудьте тот небольшой факт, что sequence на rollback назад не откатится. Автоинкрементых полей то же самое касается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 23:13 |
|
||
|
Автоинкремент в пределах...
|
|||
|---|---|---|---|
|
#18+
Semen PopovПонятно. А не будет ли проблем в многопользовательском режиме? Ведь подобным образом можно заменить и свойство generated always as identity , но разработчики почему-то триггеры для реализации этого свойства не используют. Я где-то читал, что это может доставить проблемы. У нас реализовано подобное триггерами, и работает именно в многопользовательском режиме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 07:00 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=36602333&tid=1602774]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 293ms |
| total: | 435ms |

| 0 / 0 |
