Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 564

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Я бы хотел бы создать индексное поле в своей базе которое автоматически присваевалбы порядковый номер записи.
подскажите ссылки по этой теме
заранее благодарен.

Р.А. Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Р.А. (статус: Посетитель)
Вопрос отправлен: 10 мая 2007, 09:38
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: Помфюк Владимир Степанович

Здравствуйте, Раджабов Амин!
Вы бы указали для разнообразия какую СУБД используете.
В Interbase:
create generator gen_my_id;
set term ^ ;
create trigger trg_gen_id for "my_table" before insert as
begin
new.autoinc_field=gen_id(gen_my_id,1);
end
^
set term ; ^

В MySQL, Sybase ASA(ASE) и DB2(в последних версиях) просто обьявляете поле как AUTOINCREMENT

А в файловых (FoxPro, dBase, Paradox) - автоматически ничего не делается - нужно вручную шерстить таблицу и заносить значения.

Ответ отправил: Помфюк Владимир Степанович (статус: Абитуриент)
Время отправки: 10 мая 2007, 09:50
Оценка за ответ: 5

Комментарий к оценке: спасибо за инфу
я использую Paradox

Ответ #2. Отвечает эксперт: Вадим К

Здравствуйте, Раджабов Амин!
Вы пишете: Номер записи. Воно то может и хорошо, но если бы не одни большое но. Но, на которое напоролся и предыдущий эксперт. То что он написал - это автоинкримент - тоесть значения для каждой записи в указаном поле будет увеличиваться на еденицу. Но если где то внутри вы удалите одну- две записи, то получиться "дырка" в нумерации. Никто автоматически не пересчитает это поле. Да оно и не то что не надо, а и вредно, если это индекс ("поплывут" связи между таблицами - гуглите на тему "ссылочная целостность"). И напоследок. Записи в таблице не имеют номера! Точнее вы можете говорить о номере записи в результате конкретного запроса к базе, когда вы отсортировали записи. В противном случае база имеет полное право выдавать вам записи в том порядке, котором ей удобней. Тоесть в результате запроса, в котором вы явно не попросили отсортировать база данных имеет полное право вам отдавать записи в разном порядке. Также лишены смысла вопросы вида "а как добавить запись в конец таблицы?".

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 10 мая 2007, 11:14
Оценка за ответ: 4


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 21 марта 2023, 20:01
Выполнено за 0.02 сек.
Рейтинг@Mail.ru