Как сбросить столбец идентификации Firebird 3.0

Я использую Firebird 3 для своего проекта и добавил столбцы идентификаторов для столбцов с автоинкрементом.

Перед публикацией я протестировал базу данных с тысячами записей, теперь я хочу обнулить столбец, но не смог найти никакого решения.

Вот изображение введите здесь описание изображения


person Core    schedule 09.01.2019    source источник
comment
Вам следует подумать о том, чтобы не использовать рабочую базу данных для тестирования (или наоборот: не использовать тестовую базу данных для производственной работы), поскольку вы потенциально оставили тестовые данные позади. Рассмотрите возможность воссоздания базы данных заново.   -  person Mark Rotteveel    schedule 09.01.2019
comment
Вот изображение - если неизвестная программа, которая неизвестным образом переводит команды Firebird SQL...   -  person Arioch 'The    schedule 10.01.2019
comment
@Arioch, его скриншот от маэстро жар-птицы.   -  person Core    schedule 10.01.2019
comment
Что, если бы вы сняли флажок Primary Key и сохранили поле?   -  person Arioch 'The    schedule 11.01.2019
comment
@ Arioch'The AFAIK, поле больше не будет primary key.   -  person Core    schedule 12.01.2019
comment
конечно, но после этого Маэстро разрешит вам сбросить счетчик, когда поле больше не будет PK?   -  person Arioch 'The    schedule 14.01.2019


Ответы (1)


Из примечаний к выпуску Firebird 3 на столбцы идентификации:

<alter column definition> ::=
    <name> RESTART [ WITH <value> ]

Определение столбца можно изменить, чтобы изменить начальное значение генератора. только RESTART сбрасывает генератор на ноль; необязательное предложение WITH <value> позволяет запускать перезапущенный генератор со значением, отличным от нуля.

Для получения дополнительной информации см. также билет CORE-4206.

Другими словами, чтобы перезапустить последовательность идентификации, вы можете использовать

alter table yourtable alter column idcolumn restart

Где yourtable должно быть имя вашей таблицы, а idcolumn имя столбца идентификаторов, который необходимо сбросить.

Я не знаю, какой инструмент вы показываете на скриншоте, но, видимо, он не поддерживает эту опцию в своем пользовательском интерфейсе. Это означает, что вам нужно будет выполнить оператор DDL, показанный выше, напрямую. Если вы считаете, что это важно, подумайте о том, чтобы подать запрос на улучшение сопровождающему инструменту.

person Mark Rotteveel    schedule 09.01.2019