Comment puis-je spécifier qu'une colonne doit être incrémenté automatiquement dans pgAdmin?

dba.stackexchange https://dba.stackexchange.com/questions/1281

Question

J'ai commencé à apprendre pgAdmin III pour gérer une base de données PostgreSQL. Mais il n'a pas été facile à l'application d'utilisation.

Si je crée ou ai créé une table avec pgAdmin III, comment puis-je ajouter "auto-incrément" -Fonctionnalité sur un ID de colonne qui a le type integer?

Était-ce utile?

La solution

deux options: Utilisez le "type de données" ou créer SERIAL une séquence et d'utiliser cette séquence en tant que valeur par défaut pour le nombre entier:

CREATE SEQUENCE your_seq;
CREATE TABLE foo(
  id int default nextval('your_seq'::regclass),
  other_column TEXT
);
INSERT INTO foo(other_column) VALUES ('bar') RETURNING *;

Autres conseils

Si vous voulez faire en PgAdmin, il est beaucoup plus facile que d'utiliser la ligne de commande. Il semble dans PostgreSQL, d'ajouter un incrément automatique à une colonne, nous avons d'abord besoin de créer une séquence d'incrémentation automatique et l'ajouter à la colonne requise. Je l'ai fait comme ça.

1) Tout d'abord, vous devez vous assurer qu'il ya une clé primaire pour votre table. Gardez également le type de données de la clé primaire dans bigint ou smallint. (Je bigint, n'a pas pu trouver un type de données appelé série comme mentionné dans d'autres réponses ailleurs)

2) Ensuite, ajoutez une séquence en cliquant droit sur sequence-> ajouter une nouvelle séquence .  S'il n'y a pas de données dans le tableau, laissez la séquence telle qu'elle est, ne font pas de changements. Il suffit de l'enregistrer. S'il existe des données existantes, ajouter la dernière ou la plus haute valeur dans la colonne de clé primaire à la valeur actuelle dans l'onglet Définitions, comme indiqué ci-dessous. entrer la description d'image ici

3) Enfin, ajoutez la ligne nextval('your_sequence_name'::regclass) à la valeur par défaut dans votre clé primaire comme indiqué ci-dessous.

 entrer image description ici Assurez-vous que le nom de la séquence est correcte ici. Ceci est tout et incrémentation automatique devrait fonctionner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top