Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> AutoIncrement in FireBird, да и в остальных БД 
V
    Опции темы
Darked
Дата 21.11.2007, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 26.2.2004
Где: Южный Урал

Репутация: нет
Всего: нет



          Доброе время суток.

   Только начал погружаться в БД и первый опыт с FireBird, как я понял единственный механизм задания id в таблицах (последовательной генерации) это Generator? Встроеннных средств, как допустим в MySQL AutoIncrement, нет?
   При таком способе при удалении записей получаются пробелы, как я понимаю и MySQL такая же проблема, несмотря на встроенные средства. А есть ли в какой - нибудь БД механизм, который упорядочивает индексы?


--------------------
Veni, Vidi, Vici !!!
PM MAIL ICQ   Вверх
Deniz
Дата 22.11.2007, 06:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Что имелось ввиду под 
Цитата(Darked @  22.11.2007,  01:39 Найти цитируемый пост)
механизм, который упорядочивает индексы

Почему многих, в основном начинающих, так волнуют пробелы?


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Akella
Дата 22.11.2007, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(Darked @  21.11.2007,  22:39 Найти цитируемый пост)
механизм задания id в таблицах (последовательной генерации) это Generator? Встроеннных средств, как допустим в MySQL AutoIncrement, нет?

да, именно, используй триггеры и генераторы

Код

create generator gen_t_action_id;

create or alter trigger t_action_bi for t_action
active before insert position 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gen_t_action_id,1);
end


почитай  про new и old


Цитата(Darked @  21.11.2007,  22:39 Найти цитируемый пост)
При таком способе при удалении записей получаются пробелы,

А при каком не получаются?
Мало того, как сказал Deniz, не думай о "пробелах" с высока
PM MAIL   Вверх
Exai1e
Дата 22.11.2007, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: нет
Всего: 30



Помоему это "пробелы" и должны быть, если привязка идет по ID к какомуто полю, а если будут упорядочивается то получиться каша... 


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
Deniz
Дата 22.11.2007, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Exai1e, можно написать правильный алгоритм "сжатия" пробелов, только зачем?
Да и если база большая, то работать это будет очень долго.
ID никто не видит, кроме админа.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Darked
Дата 22.11.2007, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 26.2.2004
Где: Южный Урал

Репутация: нет
Всего: нет



Цитата(Deniz @  22.11.2007,  06:31 Найти цитируемый пост)
Почему многих, в основном начинающих, так волнуют пробелы? 


   НУ, как - то, привык, что всё должно быть строго по-порядку ))


   Спасибо, почитал, вроде стало понятнее. 


--------------------
Veni, Vidi, Vici !!!
PM MAIL ICQ   Вверх
Deniz
Дата 23.11.2007, 06:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Цитата(Darked @  22.11.2007,  16:32 Найти цитируемый пост)
НУ, как - то, привык, что всё должно быть строго по-порядку ))

Порядок должен быть в другом  smile 


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.