|
|
|
Счтечик
|
|||
|---|---|---|---|
|
#18+
Привет! как можно добавить в таблицу поле счетчик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2003, 06:58 |
|
||
|
Счтечик
|
|||
|---|---|---|---|
|
#18+
Поконкретнее пожалуйста, что именно нужно, может генератор уникальных чисел, может генератор последовательных чисел, что в результате-то получить надо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2003, 07:36 |
|
||
|
Счтечик
|
|||
|---|---|---|---|
|
#18+
генератор последовательных чисел, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2003, 08:18 |
|
||
|
Счтечик
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2003, 08:26 |
|
||
|
Счтечик
|
|||
|---|---|---|---|
|
#18+
Для чего, чтобы получать уникальный Id? Тогда используй генераторы и трегеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2003, 08:27 |
|
||
|
Счтечик
|
|||
|---|---|---|---|
|
#18+
А уникальное как забабахать? есть поле id primary key - последовательность чисел все равно, когда-то дойдет до предела... что дальше буден мне не известно... а вот если бы уникальные... :o/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2003, 12:57 |
|
||
|
Счтечик
|
|||
|---|---|---|---|
|
#18+
Voha писал: Смотри ГЕНЕРАТОРЫ Я писал: последовательность чисел все равно, когда-то дойдет до предела... что дальше буден мне не известно... а вот если бы уникальные... :o/ вот я и писал про gen_id() - он autoincrement делает... А после того, как значение упрется в потолок 2*10^31 что получится? Поэтому и спросил про уникальность... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 16:28 |
|
||
|
Счтечик
|
|||
|---|---|---|---|
|
#18+
Не кислая у дебя динамика данных в базе. А данные только добовляются или еще и убиваются? Если данные убиваются, то веди статистику удаленных записей - точнее их ИД и запихивай в базу, а при добавлении записи шурши таблу со свободными ИД и если они есть то бери от туда, если нет то бери из генератора. Только с таким подходом много проблем может возникнуть с уникальностью. Поэтому транзакция которая берет из таблы свободные номера должна быть как можно короче, или вобще делать полную (если можно) блокировку таблы со свободными ИД. Но цифера 2*10^31 приличная, я и до стольки и считать то не умею. А какая динамика в табле у тебя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 16:56 |
|
||
|
Счтечик
|
|||
|---|---|---|---|
|
#18+
не 2*10^31 а 2^32 (ну или если брезгуеш отритцательными то в два раза меньше). На маленьких, базах я делаю один генератор для всех таблиц. Там где есть подозрение на возможность бОльшего количества записей, отдельный триггер на эту таблицу... А вообще, переполнение здесь реально, нужно ждать 1.5 файрберда там вроде int64 доступен. (хотя я в первом не проверял может тоже есть и проблема надумана) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 17:05 |
|
||
|
Счтечик
|
|||
|---|---|---|---|
|
#18+
А какая динамика в табле у тебя? В том-то и дело, что динамика пока неизвестна. не 2*10^31 а 2^32 (ну или если брезгуеш отритцательными то в два раза меньше). Оччень точно: от -2^31 до 2^31-1 Много конечно, но по принципу пессимиста, рассчитывать надо на худшее. Вариант с таблицей идентификаторов слишком наворочен, но практичен. Тормозить базу будет при вставке большого количества записей, но за идею спасибо... Если понадобится, использую... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2003, 09:35 |
|
||
|
Счтечик
|
|||
|---|---|---|---|
|
#18+
Ну ты блин друг конкретный пессимист :-))). Таких еще не встречал. Надаже хоть предположительно знать динамику добавлениея удаления записей в разрабатываемой табле. Может этот лимит исчерпается лет так через 50. Так накой ляд себе голову ломать, пусть потомки этим занимаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2003, 09:48 |
|
||
|
Счтечик
|
|||
|---|---|---|---|
|
#18+
А никогда не дойдет. Если так уж беспокоит, достаточно использовать IB6 и выше с третьим диалектом, там генераторы int64. Солнце взорвется, пока считать будешь. Но, как правило, достаточно integer, ограничение на количество записей в таблице в точности соответствует этому диапазону. Вот только забить столько - очень много времени надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2003, 10:42 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32163705&tid=1580499]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
146ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 191ms |
| total: | 423ms |

| 0 / 0 |
