powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
23 сообщений из 23, страница 1 из 1
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910142
Ключик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть унаследованная база данных, в которой диапазон первичных ключей находится в диапазоне от 1 до 500 млрд, хотя самая большая таблица порядка 10000 записей. Таблиц среднее кол-во - порядка 100, много связей между таблицами.

Можно ли выполнить какое-то преобразование над БД, чтобы привести эти значения к диапазонам от 1 и выше, без промежутков? Может ли тут помочь бэкап-рестор?
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910154
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ключик,

нет. И вообще это бред
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910155
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пристрелите тролля тупорылого
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910161
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ключик,

Имхо овчинка выделки не стоит - тр...ся нужно долго и осторожно, а толку - чуть.

P.S. B/r не спасет...
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910178
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ключикпривести эти значения к диапазонам от 1 и выше, без промежутков?Когда коту нечем заняться, он занимается этим самым.
DarkMasterа толку - чуть.Про кота понятно, после манипуляций "это самое" блестит. А тут толк-то какой?
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910191
Ключик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужно с минимальными усилиями написать интерфейс к имеющейся БД. Думал сделать один автогенератор на все таблицы и дергать его при вставке записей. Но тут придется вставлять начиная с очень больших значений ключа. Делать кучу генераторов нет никакого желания, там не так много данных. Клиент - браузер, обращается через rest-api к серверу. Или все-таки нужно сделать кучу генераторов? Да, первичные ключи - это double precision. Т.е. мне их по-любому нужно преобразовывать в строки, чтобы привязывать в javascript'e на клиенте.
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910207
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КлючикДа, первичные ключи - это double precision.
уверен? в базе прямо так и есть
create table ...(
id double precision not null,
...

?

КлючикДумал сделать один автогенератор на все таблицы
а что, в базе генераторов нет, совсем? эта база не от Firebird/InterBase?

КлючикТ.е. мне их по-любому нужно преобразовывать в строки, чтобы привязывать в javascript'e на клиенте.
адский ад. не взлетит.
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910219
Ключик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv, да, даблы как ключи ( вот нашел свой топик ) .
Все никак руки не доходили до этой БД, а сейчас полез - там 10 генераторов на всю базу, но ни один даже не приближается к этим гигантским значениям. Думаю, генерили на клиенте, триггеров нет совсем, алгоритм генерации не известен, разработчик тоже.

Могут ли быть проблемы с использованием одного генератора? Т.е. я нахожу макс значение во всех таблицах, завожу генератор и использую его для всех таблиц (записей-то не много). И как насчет того, чтобы перед вставкой находить max(id) + 1, тогда без триггеров. конфликты вставки (они не должны быть частыми), думаю, можно разруливать на сервере и запускать транзакцию повторно. Насколько это плохо?
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910225
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КлючикИ как насчет того, чтобы перед вставкой находить max(id) + 1, тогда без триггеров. конфликты вставки (они не должны быть частыми), думаю, можно разруливать на сервере и запускать транзакцию повторно. Насколько это плохо?
Это даже не смешно
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910228
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ключик,

что так сложно создать по генератору на таблицу? Сколько там таблиц в БД?

И таки убери double из первичных ключей это идиотизм
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910234
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ключик> kdv, да, даблы как ключи (вот нашел свой топик < http://www.sql.ru/forum/1143060/baza-dannyh-s-tipom-dannyh-pervichnogo-klucha-double>) .
Ты б сделал бы базе Reverse Engineering в IBExpert'е да показал бы народу её скрипт создания...

--
Vladimir A.Bakhvaloff
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910242
Ключик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шавлюк Евгений Это даже не смешно
А в чем-проблема-то? Можно, конечно, поднять на сервере атомарный счетчик по каждой таблице, при старте считать max(id) + 1 и увеличивать его атомарно при обращениях

Симонов Денис, 100 таблиц.
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910246
Ключик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zirra Ты б сделал бы базе Reverse Engineering в IBExpert'е да показал бы народу её скрипт создания...

--
Vladimir A.Bakhvaloff


А как reverse engenering тут поможет-то?
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910255
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гоните его накуй, это трололо обычное.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910264
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КлючикМне нужно с минимальными усилиями написать интерфейс к имеющейся БД.интерфейс будет только твой или еще какой-то старый(фнаследованный)?
КлючикДумал сделать один автогенератор на все таблицы и дергать его при вставке записей.Не вижу тут проблем.
КлючикТ.е. мне их по-любому нужно преобразовывать в строкисмысл?

Сделай один генератор и нехай он растет от нуля вниз, ну или от -1000000000 вверх.

есть такая конструкция: триггер на инсерт дергает генератор, а потом конструкция insert... returning отдает клиенту обратно значение после вставки строки, чтобы клиент например мог что-то там отрефрешить или перепозиционировать что-то куда-то.
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910268
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ключик> А как reverse engenering тут поможет-то?
А %рен его знает...
Никто ж ещё не видел, что там у тебя нарисовано-то конкретно...

--
Vladimir A.Bakhvaloff
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910271
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ключик.....
1.Думаю, генерили на клиенте, триггеров нет совсем, алгоритм генерации не известен, разработчик тоже.

2.Могут ли быть проблемы с использованием одного генератора? Т.е. я нахожу макс значение во всех таблицах, завожу генератор и использую его для всех таблиц (записей-то не много).

3.И как насчет того, чтобы перед вставкой находить max(id) + 1, тогда без триггеров. конфликты вставки (они не должны быть частыми), думаю, можно разруливать на сервере и запускать транзакцию повторно.

1. И как мне кажется самое главное (ну мне так кажется)
Если клиента не будешь переписывать, то все остальное не имеет смысла
2. Нет
3. Это не вариант к рассмотрению
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910283
Ключик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevsky,

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

>есть такая конструкция: триггер на инсерт дергает генератор, а потом конструкция insert... returning отдает клиенту обратно значение после вставки строки
а вот тут я не понял. я из jdbc данные получаю, он возвращает только кол-во записей, к которым применилась операция sql

Всем кто читает топик: клиент будет другой, под веб
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910295
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyDarkMasterа толку - чуть.Про кота понятно, после манипуляций "это самое" блестит. А тут толк-то какой?

Как какой? Агромаднейший опыт занятия неизвестной науке фигней ;)
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910358
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ключикчтобы перед вставкой находить max(id) + 1, тогда без триггеров
во-первых, max(id) будет не быстрым.
во-вторых, два клиента дадут одинаковый max(id)
в третьих, обрабатывать такие ошибки и переповторять действие - это онанизм.
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38910379
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ключик... клиент будет другой...
Ну тогда всё намного проще
Разрабатываешь структуру новой БД
Пишешь клиента
Перегоняешь данные из старой БД в новую

Возможно не так легко и быстро как хотелось-бы но это реально.
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38911074
wamaco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КлючикУ меня есть унаследованная база данных, в которой диапазон первичных ключей находится в диапазоне от 1 до 500 млрд, хотя самая большая таблица порядка 10000 записей. Таблиц среднее кол-во - порядка 100, много связей между таблицами.

Можно ли выполнить какое-то преобразование над БД, чтобы привести эти значения к диапазонам от 1 и выше, без промежутков? Может ли тут помочь бэкап-рестор?

формируй уникальное число без повтора!
...
Рейтинг: 0 / 0
Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
    #38911081
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wamacoформируй уникальное число без повтора!Фраза понравилась, есть в ней уникальность без повтора!

Ключика вот тут я не понял. я из jdbc данные получаю, он возвращает только кол-во записей, к которым применилась операция sqlДока, "наше фсё"!
insert returning отдает обратно клиенту набор тех полей, что ты указал в этой кляузе. Те же данне из селекта получать умеешь? вот и тут аналогично.

КлючикВсем кто читает топик: клиент будет другой, под вебЕсли дабл мозолит глаз, то перегони его в int64, делов-то.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Можно ли в Firebird какими-то стандартными средствами уменьшить значения первичных ключей?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]