Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как сбросить счетчик as identity Firebird 3? / 16 сообщений из 16, страница 1 из 1
29.03.2016, 12:41
    #39203083
RADSeatle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сбросить счетчик as identity Firebird 3?
Привет всем
При создание таблице указал ID as identity хочу обнулить как это сделать?
...
Рейтинг: 0 / 0
29.03.2016, 12:57
    #39203105
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сбросить счетчик as identity Firebird 3?
RADSeatle,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
create table objects (
  id integer generated by default as identity primary key,
  name varchar(15)
);

/*что делаем, потом сбрасываем счетчик на 10000*/
alter table objects
  alter id restart with 10000;
...
Рейтинг: 0 / 0
29.03.2016, 13:01
    #39203110
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сбросить счетчик as identity Firebird 3?
RADSeatle,

Код: sql
1.
2.
ALTER TABLE t
ALTER ID RESTART WITH 0;
...
Рейтинг: 0 / 0
29.03.2016, 13:11
    #39203122
RADSeatle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сбросить счетчик as identity Firebird 3?
Спасибо всем
...
Рейтинг: 0 / 0
05.05.2016, 10:37
    #39229661
fb user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сбросить счетчик as identity Firebird 3?
Симонов ДенисRADSeatle,

Код: sql
1.
2.
ALTER TABLE t
ALTER ID RESTART WITH 0;


Ожидал что изменится значение системного генератора для T.ID.
Получил:
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
lock conflict on no wait transaction.
unsuccessful metadata update.
object TABLE T is in use.


В соседнем окне висел non-commited insert в T.
...
Рейтинг: 0 / 0
05.05.2016, 10:53
    #39229679
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сбросить счетчик as identity Firebird 3?
...
Рейтинг: 0 / 0
05.05.2016, 11:07
    #39229690
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сбросить счетчик as identity Firebird 3?
fb user,

наверное особенности реализации.

А можно вопрос зачем это понадобилось?
IDENTITY это конечно удобно в ряде случаев, но оно явно не для того чтобы его постоянно сбрасывать
...
Рейтинг: 0 / 0
05.05.2016, 11:15
    #39229700
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сбросить счетчик as identity Firebird 3?
Hello, Симонов Денис!
You wrote on 5 мая 2016 г. 11:12:48:

Симонов Денис> IDENTITY это конечно удобно в ряде случаев, но оно явно не для того чтобы его постоянно сбрасывать
дай возможность дураку что-то использовать НЕ ПО НАЗНАЧЕНИЮ, и именно так он будет это применять.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.05.2016, 11:44
    #39229722
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сбросить счетчик as identity Firebird 3?
МимопроходящийHello, Симонов Денис!
You wrote on 5 мая 2016 г. 11:12:48:

Симонов Денис> IDENTITY это конечно удобно в ряде случаев, но оно явно не для того чтобы его постоянно сбрасывать
дай возможность дураку что-то использовать НЕ ПО НАЗНАЧЕНИЮ, и именно так он будет это применять.


не нравишься ты мне, но сейчас прав )))
...
Рейтинг: 0 / 0
05.05.2016, 11:57
    #39229732
fb user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сбросить счетчик as identity Firebird 3?
Симонов ДенисА можно вопрос зачем это понадобилось?
Как замена генераторам. Теперь знаю что есть особенности.
...
Рейтинг: 0 / 0
05.05.2016, 12:04
    #39229733
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сбросить счетчик as identity Firebird 3?
fb user,

ну генератор он сам по себе. А IDENTITY хоть и работает на основе внутреннего генератора всё-таки часть метаданных таблицы.

Если честно, то и в случае генераторов сбрасывание его как часть бизнес логики в многопользовательской среде попахивает. Как и всякое изменение метаданных на лету.
...
Рейтинг: 0 / 0
05.05.2016, 12:17
    #39229753
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сбросить счетчик as identity Firebird 3?
Симонов ДенисЕсли честно, то и в случае генераторов сбрасывание его как часть бизнес логики в многопользовательской среде попахивает. Как и всякое изменение метаданных на лету.

Если честно я вынес 2 случая, когда можно/нужно манипулировать значениями генератора:
- разнесение диапазонов генерируемых ID по разным базам (к примеру для разных филиалов) с последующим сливанием данных в одну центральную БД
- использование значения генератора в качестве флага для прерывания "тяжелого" запроса

Симонов Денис Как и всякое изменение метаданных на лету.
Это отдельная песня.
...
Рейтинг: 0 / 0
05.05.2016, 12:23
    #39229761
fb user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сбросить счетчик as identity Firebird 3?
Симонов ДенисЕсли честно, то и в случае генераторов сбрасывание его как часть бизнес логики в многопользовательской среде попахивает. Как и всякое изменение метаданных на лету.
Значение внутреннего генератора значений для поля - это не метаданные. А то получается что мы при каждом инсерте метаданные правим :)
...
Рейтинг: 0 / 0
05.05.2016, 12:25
    #39229763
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сбросить счетчик as identity Firebird 3?
fb userА то получается что мы при каждом инсерте метаданные правим :)set generator и gen_id таки 2 сильно разные команды.
...
Рейтинг: 0 / 0
05.05.2016, 12:53
    #39229802
fb user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сбросить счетчик as identity Firebird 3?
Ivan_Pisarevskyfb userА то получается что мы при каждом инсерте метаданные правим :)set generator и gen_id таки 2 сильно разные команды.
Код: sql
1.
2.
alter sequence G restart with 100
select gen_id(G, -gen_id(G, 0) + 100) from rdb$database


Первый срабатывает по коммиту, а второй сразу.

Очень нужна конструкция типа gen_id(T.ID, n).
...
Рейтинг: 0 / 0
05.05.2016, 12:59
    #39229814
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сбросить счетчик as identity Firebird 3?
Hello, Fb User!
You wrote on 5 мая 2016 г. 12:58:49:

Fb User> Очень нужна конструкция
и снова возвращаемся к вопросу о насущной необходимости глотания бильярдного шара
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как сбросить счетчик as identity Firebird 3? / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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