Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2015, 08:44   #1
Parallelogram
Недотепа
Форумчанин
 
Регистрация: 18.01.2011
Сообщений: 174
По умолчанию Пронумеровать строки

Здравствуйте, у меня есть таблица отсортированная и пронумерованная, но когда я удаляю одну строку появляется дыра в нумерации. Подскажите, как этого избежать?
Было:
id pos file
12 1 go.txt
31 2 fds.txt
34 3 qwe.txt
47 4 px.txt
53 5 nb.txt

Стало:
12 1 go.txt
31 2 fds.txt
47 4 px.txt
53 5 nb.txt

А должно быть:
12 1 go.txt
31 2 fds.txt
47 3 px.txt
53 4 nb.txt
Parallelogram вне форума Ответить с цитированием
Старый 01.03.2015, 09:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не по теме: А ты уверен что тебе это надо? Имеется ввиду физически выставление номера по порядку в самой базе.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.03.2015, 09:27   #3
Parallelogram
Недотепа
Форумчанин
 
Регистрация: 18.01.2011
Сообщений: 174
По умолчанию

Да, это галерея картинок и я их потом сортирую, если нужно, в правильной последовательности.
Parallelogram вне форума Ответить с цитированием
Старый 01.03.2015, 10:09   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

О, я похоже прав. Ты высосал проблему из пальца. Отговаривать тебя писать глупости я не буду. Хочешь переформатации таблицы - используй UPDATE. А вот что ты будешь подставлять в новое значение поля зависит от СУБД. Например в FB можно использовать генераторы, в Сиквеле это ROW_NUMBER(), если не ошибаюсь. в Оракле... Кажись такая же функция. Ну и так далее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.03.2015, 15:36   #5
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
но когда я удаляю одну строку появляется дыра в нумерации
1) Как вам уже скахали это не нужно .
2) Можно его перекривать из приложение что это не будеть выдно "эту дыра"
3) Момент сортировке это не какй проблема не будеть
4) Если это так и вы знаите что вам НУЖНО при необходимости изменяет значение идентификатора ! Не знаю какой у вас СУБД но MS SQL это можно! смотрим документацию https://msdn.microsoft.com/ru-ru/library/ms176057.aspx
Код:
create database DB1
---------------------------
create table Tab1
(
 id int identity(1,1),
 naimen nvarchar(40)
);
---------------------------
insert into Tab1(naimen) values(N'Пива')
insert into Tab1(naimen) values(N'Чай')
insert into Tab1(naimen) values(N'Кофе')
select * from Tab1
----------------------
delete from Tab1 where naimen= N'Кофе'
select * from Tab1
----------------------------------------
USE DB1;
GO
DBCC CHECKIDENT ('Tab1', RESEED, 2);
GO
----------------------------------------
insert into Tab1(naimen) values(N'Макарон')
select * from Tab1
Смотрите
Код:
USE Имя_БД;
GO
DBCC CHECKIDENT ('Имя_Таблици', RESEED, 10); -- поставим id на 10
GO

Последний раз редактировалось xxbesoxx; 01.03.2015 в 15:47.
xxbesoxx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пронумеровать записи в таблице Swatch SQL, базы данных 1 07.12.2012 15:34
пронумеровать записи evg_m SQL, базы данных 3 06.05.2011 16:49
Пронумеровать записи в DBGridEh Sergey2 БД в Delphi 4 16.03.2010 20:03
Как в DBGrid пронумеровать строки Talemir БД в Delphi 26 14.08.2009 09:25