web-dev-qa-db-fra.com

Comment créer une colonne incrémentation automatique / id série dans DBeaver en utilisant PostgreSQL?

Je suis un nouvel utilisateur pour PostgreSQL et DBeaver (Community edition ver. 5.1.6) et je cherchais un moyen de créer une colonne d'identification à incrémentation automatique dans une table via l'interface graphique DBeaver .

De mes recherches, je peux voir que:

  1. Vous pouvez configurer cela facilement en utilisant SQL, par exemple. id SERIAL NOT_NULL

  2. Le problème sous-jacent est qu'il n'existe pas de "type de données série" et que SERIAL équivaut à nextval ("table_name_id_seq").

  3. Lorsque je crée une table à l'aide de la commande SERIAL en SQL, la colonne id résultante a une valeur nextval ('exampletable_id_seq' :: regclass ') dans l'attribut' Default '.

J'ai essayé de saisir manuellement la commande nextval () dans l'attribut 'Default' pour la colonne dans DBeaver dans une nouvelle table, par exemple. nextval ('mytable_id_seq') avec et sans le ':: regclass ;. Mais cela ne fonctionne pas.

J'apprécie que faire cela en SQL serait plus facile, et qu'il y a une question précédemment posée à: Problèmes de type de données série dans DBeaver & PostgreSQL .

Cependant, je n'ai pas pu trouver de réponse satisfaisante et l'option de pouvoir le faire via l'interface graphique serait utile, surtout si une autre configuration est effectuée via l'interface graphique DBeaver.

Plus précisément, ma question est:

  1. Existe-t-il une fonctionnalité permettant à DBeaver d'ajouter des identifiants d'incrémentation automatique via l'interface graphique?

  2. Si tel est le cas, quelles seraient les étapes pour le faire.

Merci beaucoup à tous!

6
J Won

Après avoir examiné les commentaires très utiles à ma question ci-dessus, j'ai réalisé que la question avait été posée en raison de mon manque d'expérience avec DBeaver.

Pour être complet, j'ai donné la réponse à ma question ci-dessous:

  1. Oui, il existe un moyen d'incrémenter automatiquement directement via l'interface graphique DBeaver.

  2. Cela peut être fait en configurant une variable id lorsqu'une table est créée en définissant une colonne avec un type de série et "non nul" coché, puis définir l'identifiant comme clé primaire par le biais de contraintes.

Capture d'écran ci-dessous:

enter image description here

En raison du fonctionnement de PostgreSQL, le type 'Serial' est un pseudotype qui permet d'utiliser une séquence de nombres ( http://www.postgresqltutorial.com/postgresql-serial/ ).

Ainsi, dans DBeaver, une fois que vous aurez configuré les tables, cela s'affichera comme suit plutôt qu'avec un type "série":

enter image description here

J'apprécie que ce soit une réponse très évidente à quiconque connaît PostgreSQL et/DBeaver, merci pour votre compréhension :)

1
J Won