Как создать столбец с автоматическим увеличением / серийным идентификатором в DBeaver с помощью PostgreSQL?

Я новый пользователь PostgreSQL и DBeaver (версия сообщества, версия 5.1.6) и искал способ создать столбец идентификатора с автоматическим увеличением в таблице через графический интерфейс DBeaver.

Из своего исследования я вижу, что:

  1. Вы можете легко настроить это с помощью SQL, например. id SERIAL NOT_NULL

  2. Основная проблема заключается в том, что не существует такой вещи, как «последовательный тип данных», и что SERIAL приравнивается к nextval («table_name_id_seq»).

  3. Когда я создаю таблицу с помощью команды SERIAL в SQL, результирующий столбец id имеет значение nextval ('exampletable_id_seq' :: regclass ') в атрибуте' Default '.

Я попытался вручную ввести команду nextval () в атрибуте Default для столбца в DBeaver, например, в новой таблице. nextval ('mytable_id_seq') с и без ':: regclass ;. Однако это не работает.

Я понимаю, что сделать это в SQL было бы проще, и что есть ранее заданный вопрос по адресу: Проблемы с типом данных Serial в DBeaver и PostgreSQL.

Однако я не смог найти удовлетворительного ответа, и возможность сделать это через графический интерфейс была бы полезна, особенно если другие настройки выполняются через графический интерфейс DBeaver.

В частности, мой вопрос:

  1. Есть ли у DBeaver возможность добавлять автоматически увеличивающиеся идентификаторы через графический интерфейс?

  2. Если да, как это сделать?

Всем большое спасибо!


person jwwnz    schedule 05.09.2018    source источник
comment
Мне неясно, в чем ваша проблема: можете ли вы создать таблицу через графический интерфейс, используя SERIAL, но DBeaver не отображает тип serial? Или вы не можете выбрать serial для начала?   -  person a_horse_with_no_name    schedule 05.09.2018
comment
@a_horse_with_no_name Serial можно выбрать во время создания таблицы в DBeaver, и он действительно использует serial для своего оператора CREATE (по крайней мере, в предварительном просмотре). Я думаю, он хочет, чтобы DBeaver обнаружил, что столбец соответствует требованиям типа serial, и отобразил его как таковой, и не понимает, что большинство клиентов не делают этого, включая DBeaver.   -  person Łukasz Kamiński    schedule 05.09.2018
comment
@ UkaszKamiński: я тоже думаю об этом. Но часть есть ли функция для добавления автоматически увеличивающихся идентификаторов, похоже, указывает на то, что DBeaver не предлагает такой возможности   -  person a_horse_with_no_name    schedule 05.09.2018
comment
@a_horse_with_no_name Я думаю, что он немного смущен тем, как серийный номер обычно отображается клиентами, и на самом деле не проверял, будет ли таблица, созданная DBeaver, автоматически увеличиваться в столбце с типом, установленным на serial. У меня он отлично работает в DBeaver.   -  person Łukasz Kamiński    schedule 05.09.2018
comment
@a_horse_with_no_name Большое спасибо за ваши ответы и извините за путаницу с вопросом. По сути, я хотел знать, можете ли вы выбрать серийный номер для начала через DBeaver, не вводя SQL.   -  person jwwnz    schedule 05.09.2018
comment
Посмотрев на ваши комментарии и комментарии @ ukaszKamiński, я еще раз поигрался с DBeaver, и, как правильно заметил Лукаш Камински, есть тип серийного номера, который вы можете настроить как столбец Data Type. Оглядываясь назад, мне почти стыдно за глупость моего вопроса, большое спасибо вам обоим, что нашли время ответить, несмотря на это :)   -  person jwwnz    schedule 05.09.2018


Ответы (1)


Изучив очень полезные комментарии к моему вопросу выше, я понял, что вопрос был задан из-за моего отсутствия опыта работы с DBeaver.

Для полноты картины я изложил ответ на свой вопрос ниже:

  1. Да, есть способ автоматического увеличения напрямую через графический интерфейс DBeaver.

  2. Это можно сделать, установив переменную id при создании таблицы, установив столбец с типом serial и отметив галочкой "not null", а затем установив идентификатор в качестве первичного ключа с помощью ограничений.

Снимок экрана прилагается ниже:

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

Из-за того, как работает PostgreSQL, тип Serial является псевдотипом, который позволяет использовать последовательность чисел (http://www.postgresqltutorial.com/postgresql-serial/).

Итак, в DBeaver, как только вы настроите таблицы, они будут отображаться следующим образом, а не с типом «серийный»:

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

Я ценю, что это очень очевидный ответ всем, кто знаком с PostgreSQL и / DBeaver, спасибо за понимание :)

person jwwnz    schedule 05.09.2018
comment
можно ли это сделать, но вместо того, чтобы создавать таблицу, редактируя ее? - person noloman; 28.05.2019
comment
@noloman да, можно добавить столбец id после создания таблицы. Щелкните правой кнопкой мыши Столбцы - ›Создать новый столбец, затем во всплывающем окне выберите параметры, как показано на скриншоте выше. - person Oswaldo Salazar; 24.07.2020
comment
@OswaldoSalazar, а если столбец уже существует? - person cikatomo; 18.04.2021