Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Автоинкрементация привязанная к значению колонки / 10 сообщений из 10, страница 1 из 1
16.05.2019, 14:50
    #39814078
GrandmaSquid3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементация привязанная к значению колонки
Добрый день! Подскажите как реализовать автоинкрементацию привязанную к значению колонки. Ясность должен внести пример ниже:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
+--------+----+---------+
| group  | id | class   |
+--------+----+---------+
| mammal |  1 | dog     |
| mammal |  2 | cat     |
| bird   |  1 | penguin |
| bird   |  2 | ostrich |
| mammal |  3 | whale   |
| fish   |  1 | lax     |
+--------+----+---------+

Как можно видеть в колонке 'id' находится нумерация привязанная к значению в колонке 'group'. То есть это не сквозная автоинкрементация на всю таблицу. Подскажите как реализовать данную задачу, чтобы при добавлении записи 'group' + 'class', значение 'id' заполнялось само.

Например, если я добавлю записью:
Код: plaintext
INSERT INTO animals (group,name) VALUES ('bird','raven')

В таблице должна появиться запись с 'id' = 3, так как в таблице уже были две записи у которых 'bird' = 'raven':
Код: plaintext
| bird   |  3 | raven   |
...
Рейтинг: 0 / 0
16.05.2019, 14:52
    #39814082
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементация привязанная к значению колонки
GrandmaSquid3,

sequence
...
Рейтинг: 0 / 0
16.05.2019, 15:05
    #39814091
GrandmaSquid3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементация привязанная к значению колонки
-2-,

для каждого уникального значения из колонки 'group', нужно будет создать свой SEQUENCES? Не жирно ли это? Не лучше ли при добавлении в before insert trigger искать все записи с определенным значением 'group', брать наибольшее значение из колонки 'id', прибавлять +1 и вставлять в новую запись.
...
Рейтинг: 0 / 0
16.05.2019, 15:06
    #39814093
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементация привязанная к значению колонки
GrandmaSquid3,
допускается ли многострочная вставка?

придется выставлять блокировку

зы
дырки всеравно появятся

.....
stax
...
Рейтинг: 0 / 0
16.05.2019, 15:09
    #39814098
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементация привязанная к значению колонки
GrandmaSquid3-2-,

для каждого уникального значения из колонки 'group', нужно будет создать свой SEQUENCES? Не жирно ли это? Не лучше ли при добавлении в before insert trigger искать все записи с определенным значением 'group', брать наибольшее значение из колонки 'id', прибавлять +1 и вставлять в новую запись.

а в ето время в соседний сессии ...

зы
имхо
блокировать придется как минимум группу

....
stax
...
Рейтинг: 0 / 0
16.05.2019, 15:12
    #39814101
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементация привязанная к значению колонки
GrandmaSquid3для каждого уникального значения из колонки 'group', нужно будет создать свой SEQUENCES?Зачем? Глобальный инкремент не нарушает инкрементальность в разрезе каких-либо значений.
...
Рейтинг: 0 / 0
16.05.2019, 15:24
    #39814112
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементация привязанная к значению колонки
GrandmaSquid3,

1) в табличке справочнике group добавить поле cur_id
2) ф-цией в автономной транзакции читать и увеличивать cur_id
3) в триггере :new.id:=group_nextval(:new.group);
....
stax
...
Рейтинг: 0 / 0
16.05.2019, 15:31
    #39814120
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементация привязанная к значению колонки
Stax1) в табличке справочнике group добавить поле cur_id
2) ф-цией в автономной транзакции читать и увеличивать cur_idКачественно не отличается от односиквенса. Только количественно.
...
Рейтинг: 0 / 0
16.05.2019, 15:42
    #39814130
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементация привязанная к значению колонки
-2-Качественно не отличается от односиквенса. Только количественно.
согласен, я тож за одну последовательность

но, часто архитекторы хотят номерацию в разрезе (я уж не говорю о дырках)
иногда бывает удобно
как появились автономные не вижу огромных перепон в использовании (нет cach и пусть)

....
stax
...
Рейтинг: 0 / 0
16.05.2019, 19:09
    #39814247
Да ну
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементация привязанная к значению колонки
Staxсогласен, я тож за одну последовательностьПоддерживаю предыдущего оратора.
А последовательный номер в группе тянуть аналитикой.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Автоинкрементация привязанная к значению колонки / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]