|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.04.2017, 13:39 | #1 |
Пользователь
Регистрация: 09.12.2008
Сообщений: 12
|
Переиндексация БД SQL
Приветствую!
Такой вопрос, есть база данных на 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. |
01.04.2017, 16:58 | #2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
в теории можно, но ЗАЧЕМ это.
Если этот идентификатор используется для связей с другими таблицами(а именно это и есть его основное предназначение), то одновременно с этой перенумерацией (а не переиндексированием) потребуется и перенумерация всех прочих таблиц использующих данный идентификатор. И не дай бог какую-то таблицу пропустишь... Все, база пришла в НЕВЕРНОЕ состояние. выйти из которого поможет только backup c теми самыми номерами, которые ещё не были "упорядочены". но если не передумал(не переубедили) Код:
Код:
программа — запись алгоритма на языке понятном транслятору
|
01.04.2017, 18:31 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Обычно когда в качестве номера по порядку используют идентификатор такие грабли возникают. А автоинкремент для этого не предназначен. Порядковый номер легко на клиенте показать в вычисляемом поле, используя recno например
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 01.04.2017 в 18:35. |
02.04.2017, 09:38 | #4 | |
Пользователь
Регистрация: 09.12.2008
Сообщений: 12
|
Цитата:
|
|
03.04.2017, 11:03 | #5 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
Все изменяется и со временем будет несколько таблиц и появятся связи. А про наличие "перенумерации" тем временем благополучно забыли (работает себе и работает). И тут бац, через полгода выяснится что все не так как должно быть. Ссылки идут совсем не на те записи как должно было бы быть. Произошло то было описано выше и никто не знает когда же была сделана эта неправильная "перенумерация", т.е. неизвестно даже какому 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 |