![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 09.12.2008
Сообщений: 12
|
![]()
Приветствую!
Такой вопрос, есть база данных на SQL, как в Delphi (RAD Studio) при помощи добавленной на форму кнопки сделать переиндексацию базы? Может не правильно выразился, попробую точнее. 1. Есть таблица в SQL. 2. По традиции первый столбец - уникальный идентификатор ID 3. В таблице нумерация ID начинается с 1 и далее пошло 2,3,4,5 при добавлении новых записей. 4. Если удаляешь какую либо запись, допустим 1, 3 и 4ю, то останутся записи с ID 2 и 5 5. при добавлении новой записи автоматически присваивается новый ID 6, таблица при этом имеет записи с ID 2,5,6. 6. Можно ли как то при нажатии Button на форме переиндексировать базу данных, чтоб ID приняли значения 1,2,3 а не 2,5,6? P.S. Заранее спасибо! Последний раз редактировалось ddr111; 01.04.2017 в 14:12. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]()
в теории можно, но ЗАЧЕМ это.
Если этот идентификатор используется для связей с другими таблицами(а именно это и есть его основное предназначение), то одновременно с этой перенумерацией (а не переиндексированием) потребуется и перенумерация всех прочих таблиц использующих данный идентификатор. И не дай бог какую-то таблицу пропустишь... Все, база пришла в НЕВЕРНОЕ состояние. выйти из которого поможет только backup c теми самыми номерами, которые ещё не были "упорядочены". но если не передумал(не переубедили) Код:
Код:
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Обычно когда в качестве номера по порядку используют идентификатор такие грабли возникают. А автоинкремент для этого не предназначен. Порядковый номер легко на клиенте показать в вычисляемом поле, используя recno например
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 01.04.2017 в 18:35. |
![]() |
![]() |
![]() |
#4 | |
Пользователь
Регистрация: 09.12.2008
Сообщений: 12
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
Все изменяется и со временем будет несколько таблиц и появятся связи. А про наличие "перенумерации" тем временем благополучно забыли (работает себе и работает). И тут бац, через полгода выяснится что все не так как должно быть. Ссылки идут совсем не на те записи как должно было бы быть. Произошло то было описано выше и никто не знает когда же была сделана эта неправильная "перенумерация", т.е. неизвестно даже какому Backup можно верить.
программа — запись алгоритма на языке понятном транслятору
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как у пользователя SQL убрать права на остановку/перезагрузку MS SQL Server? | R_G | Общие вопросы по программированию, компьютерный форум | 1 | 28.09.2016 06:27 |
Oracle. PL/SQL Dev. Выполнить много SQL'файлов по-порядку в 1 клик | Человек_Борща | SQL, базы данных | 2 | 11.12.2014 12:12 |
Удаление строки с помощью SQL запроса (Query1.SQL.ADD('Delete....')) | Schutze | Помощь студентам | 6 | 29.11.2009 22:15 |
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi | S_Yevgeniy | Помощь студентам | 1 | 27.10.2009 06:26 |