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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск и устранение "дырок" в таблице баз данных, Поиск и устранение "дырок" в таблице баз 
:(
    Опции темы
byaka
Дата 19.7.2011, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Была создана таблица с autoincrement по ID полю. Пока тестили базу , натолкали кучу товаров на 10000, потом их удалии, теперь хотелось бы, заполнить таблицу новыми товарами так, чтобы заполнить все удаленные поля с неиспользуемыми идентификаторами. Зачем? Программа, которая обращается к таблице ограничена 65000 записями и 10000 будут полезны. Подскажите что-то? 
PM MAIL   Вверх
baldina
Дата 19.7.2011, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



зависит от СУБД. Если в таблице нет записей, то в большинстве случаев - TRUNCATE TABLE
PM MAIL   Вверх
byaka
Дата 19.7.2011, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(baldina @ 19.7.2011,  13:57)
зависит от СУБД. Если в таблице нет записей, то в большинстве случаев - TRUNCATE TABLE

Microsoft Access
PM MAIL   Вверх
Zloxa
Дата 19.7.2011, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

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



Цитата(baldina @  19.7.2011,  13:57 Найти цитируемый пост)
 в большинстве случаев

 smile 
я предполагаю только один случай, когда счетчик автоинкремента может сброситься транком, и то - не уверен. MyISAM? smile 


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
byaka
Дата 19.7.2011, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(byaka @ 19.7.2011,  14:00)
Цитата(baldina @ 19.7.2011,  13:57)
зависит от СУБД. Если в таблице нет записей, то в большинстве случаев - TRUNCATE TABLE

Microsoft Access

только мне не удалить надо, а сделать так, чтобы база начала инкремент с 1 и использовала незанятые значения для инкремента

Добавлено через 2 минуты и 5 секунд
вот, нарыл : http://support.microsoft.com/kb/812718/ru
поробую
PM MAIL   Вверх
Zloxa
Дата 19.7.2011, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

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



Цитата(byaka @  19.7.2011,  14:02 Найти цитируемый пост)
нарыл 

Цитата

Удалите поле Счетчик из основной таблицы. 

 smile 


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
byaka
Дата 19.7.2011, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Zloxa @ 19.7.2011,  14:07)
Цитата(byaka @  19.7.2011,  14:02 Найти цитируемый пост)
нарыл 

Цитата

Удалите поле Счетчик из основной таблицы. 

 smile

они предлагают скопировать в новую таблицу старую таблицу smile Что еще от мелкософта взять smile
PM MAIL   Вверх
baldina
Дата 19.7.2011, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



Цитата(Zloxa @  19.7.2011,  14:01 Найти цитируемый пост)
я предполагаю только один случай, когда счетчик автоинкремента может сброситься транком, и то - не уверен. MyISAM?

ms sql http://msdn.microsoft.com/ru-ru/library/ms177570.aspx
mysql http://dev.mysql.com/doc/refman/5.0/en/truncate-table.html
про oracle точно не знаю
ms jet (access) - весьма условный sql движок, там все через попу. так что "рекомендация производителя" с пересозданием поля счетчика меня не удивляет. однако в mdb все проще: надо выполнить команду "сжать и восстановить базу данных", счетчики обнулятся
PM MAIL   Вверх
Zloxa
Дата 19.7.2011, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

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



Цитата(baldina @  19.7.2011,  14:23 Найти цитируемый пост)
ms sql http://msdn.microsoft.com/ru-ru/library/ms177570.aspx

И где тут про сброс identity? Процитируй плиз.
Код

create table test (id int identity,val int);
insert into test(val) select 1 union all select 2 union all select 3;
select max(id) max_id from test;
insert into test(val) select 1 union all select 2 union all select 3;
select max(id) max_id from test;
drop table test;

Цитата

(3 row(s) affected)
max_id
-----------
3

(1 row(s) affected)

(3 row(s) affected)

max_id
-----------
6

(1 row(s) affected)


Цитата(baldina @  19.7.2011,  14:23 Найти цитируемый пост)
mysql http://dev.mysql.com/doc/refman/5.0/en/truncate-table.html

Да, таки в масе все оказалось намного хуже..  smile 

Цитата(baldina @  19.7.2011,  14:23 Найти цитируемый пост)
про oracle точно не знаю

В оракле принципиально нет автоинкрементных полей. ЭТо тупиковая ветвь эволюции СУБД.

Это сообщение отредактировал(а) Zloxa - 19.7.2011, 14:46


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
byaka
Дата 19.7.2011, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(baldina @ 19.7.2011,  14:23)
Цитата(Zloxa @  19.7.2011,  14:01 Найти цитируемый пост)
однако в mdb все проще: надо выполнить команду "сжать и восстановить базу данных", счетчики обнулятся 

не помогло, хотя мелкософт пишет, что все должно быть ок : http://office.microsoft.com/ru-ru/access-h...P005187449.aspx !
PM MAIL   Вверх
Zloxa
Дата 19.7.2011, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

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



Цитата(Zloxa @  19.7.2011,  14:38 Найти цитируемый пост)
И где тут про сброс identity? Процитируй плиз.

черт, я баран.... smile 
Код

create table test (id int identity,val int);
insert into test(val) select 1 union all select 2 union all select 3;
select max(id) max_id from test;
truncate table test;
insert into test(val) select 1 union all select 2 union all select 3;
select max(id) max_id from test;
drop table test;


Цитата

(3 row(s) affected)
max_id
-----------
3

(1 row(s) affected)

(3 row(s) affected)

max_id
-----------
3

(1 row(s) affected)



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
baldina
Дата 19.7.2011, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



Цитата(byaka @  19.7.2011,  14:40 Найти цитируемый пост)
не помогло

всегда помогало...
какая версия access? какое расширение у файла БД?
PM MAIL   Вверх
byaka
Дата 19.7.2011, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(baldina @ 19.7.2011,  15:05)
Цитата(byaka @  19.7.2011,  14:40 Найти цитируемый пост)
не помогло

всегда помогало...
какая версия access? какое расширение у файла БД?

access - 2003 sp3, файл mdb
PM MAIL   Вверх
baldina
Дата 19.7.2011, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



должно работать. счетчики не меняются в таблице, если она непуста. для пустой сбрасывается в 0
PM MAIL   Вверх
byaka
Дата 19.7.2011, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(baldina @ 19.7.2011,  16:32)
должно работать. счетчики не меняются в таблице, если она непуста. для пустой сбрасывается в 0

так она не пуста, как обнулить, только копированим как пишет мелкософт?

Это сообщение отредактировал(а) byaka - 19.7.2011, 16:45
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


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

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


 




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


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

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