powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Счтечик
15 сообщений из 15, страница 1 из 1
Счтечик
    #32160106
DAN1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет! как можно добавить в таблицу поле счетчик
...
Рейтинг: 0 / 0
Счтечик
    #32160110
Евгений, Екатеринбург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поконкретнее пожалуйста, что именно нужно, может генератор уникальных чисел, может генератор последовательных чисел, что в результате-то получить надо...
...
Рейтинг: 0 / 0
Счтечик
    #32160125
DAN1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
генератор последовательных чисел,
...
Рейтинг: 0 / 0
Счтечик
    #32160131
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alter table yourtable add countfield integer

create generator countfieldgen

create trigger setcountfield for yourtable
before insert as begin
new.countfield=gen_id(countfieldgen,1);
end
...
Рейтинг: 0 / 0
Счтечик
    #32160132
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для чего, чтобы получать уникальный Id?
Тогда используй генераторы и трегеры.
...
Рейтинг: 0 / 0
Счтечик
    #32160189
DAN1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чистое поле
...
Рейтинг: 0 / 0
Счтечик
    #32160517
DAN1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поле доб-сь но чистое
...
Рейтинг: 0 / 0
Счтечик
    #32161686
_designer_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А уникальное как забабахать?
есть поле id primary key - последовательность чисел все равно, когда-то дойдет до предела... что дальше буден мне не известно... а вот если бы уникальные... :o/
...
Рейтинг: 0 / 0
Счтечик
    #32161696
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотри ГЕНЕРАТОРЫ
...
Рейтинг: 0 / 0
Счтечик
    #32163228
_designer_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Voha писал:
Смотри ГЕНЕРАТОРЫ

Я писал:
последовательность чисел все равно, когда-то дойдет до предела... что дальше буден мне не известно... а вот если бы уникальные... :o/

вот я и писал про gen_id() - он autoincrement делает... А после того, как значение упрется в потолок 2*10^31 что получится? Поэтому и спросил про уникальность...
...
Рейтинг: 0 / 0
Счтечик
    #32163280
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не кислая у дебя динамика данных в базе.
А данные только добовляются или еще и убиваются?
Если данные убиваются, то веди статистику удаленных записей - точнее их ИД и запихивай в базу, а при добавлении записи шурши таблу со свободными ИД и если они есть то бери от туда, если нет то бери из генератора. Только с таким подходом много проблем может возникнуть с уникальностью. Поэтому транзакция которая берет из таблы свободные номера должна быть как можно короче, или вобще делать полную (если можно) блокировку таблы со свободными ИД.

Но цифера 2*10^31 приличная, я и до стольки и считать то не умею.
А какая динамика в табле у тебя?
...
Рейтинг: 0 / 0
Счтечик
    #32163297
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не 2*10^31 а 2^32 (ну или если брезгуеш отритцательными то в два раза меньше).
На маленьких, базах я делаю один генератор для всех таблиц. Там где есть подозрение на возможность бОльшего количества записей, отдельный триггер на эту таблицу... А вообще, переполнение здесь реально, нужно ждать 1.5 файрберда там вроде int64 доступен. (хотя я в первом не проверял может тоже есть и проблема надумана)
...
Рейтинг: 0 / 0
Счтечик
    #32163616
_designer_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какая динамика в табле у тебя?
В том-то и дело, что динамика пока неизвестна.

не 2*10^31 а 2^32
(ну или если брезгуеш отритцательными то в два раза меньше).

Оччень точно: от -2^31 до 2^31-1
Много конечно, но по принципу пессимиста, рассчитывать надо на худшее.
Вариант с таблицей идентификаторов слишком наворочен, но практичен.
Тормозить базу будет при вставке большого количества записей, но за идею спасибо... Если понадобится, использую...
...
Рейтинг: 0 / 0
Счтечик
    #32163632
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ты блин друг конкретный пессимист :-))). Таких еще не встречал.
Надаже хоть предположительно знать динамику добавлениея удаления записей в разрабатываемой табле. Может этот лимит исчерпается лет так через 50. Так накой ляд себе голову ломать, пусть потомки этим занимаются.
...
Рейтинг: 0 / 0
Счтечик
    #32163705
Roman Ignatiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А никогда не дойдет. Если так уж беспокоит, достаточно использовать IB6 и выше с третьим диалектом, там генераторы int64. Солнце взорвется, пока считать будешь. Но, как правило, достаточно integer, ограничение на количество записей в таблице в точности соответствует этому диапазону. Вот только забить столько - очень много времени надо
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Счтечик
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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