Créez une clé primaire à incrémentation automatique dans postgresql, à l'aide d'une séquence personnalisée:
Étape 1, créez votre séquence:
create sequence splog_adfarm_seq
start 1
increment 1
NO MAXVALUE
CACHE 1;
ALTER TABLE fact_stock_data_detail_seq
OWNER TO pgadmin;
Étape 2, créez votre table
CREATE TABLE splog_adfarm
(
splog_key INT unique not null,
splog_value VARCHAR(100) not null
);
Étape 3, insérez dans votre table
insert into splog_adfarm values (
nextval('splog_adfarm_seq'),
'Is your family tree a directed acyclic graph?'
);
insert into splog_adfarm values (
nextval('splog_adfarm_seq'),
'Will the smart cookies catch the crumb? Find out now!'
);
Étape 4, observez les rangées
el@defiant ~ $ psql -U pgadmin -d kurz_prod -c "select * from splog_adfarm"
splog_key | splog_value
----------+--------------------------------------------------------------------
1 | Is your family tree a directed acyclic graph?
2 | Will the smart cookies catch the crumb? Find out now!
(3 rows)
Les deux lignes ont des clés qui commencent à 1 et sont incrémentées de 1, comme défini par la séquence.
Bonus Elite ProTip:
Les programmeurs détestent taper et taper nextval('splog_adfarm_seq')
est ennuyeux. Vous pouvez DEFAULT
plutôt taper ce paramètre, comme ceci:
insert into splog_adfarm values (
DEFAULT,
'Sufficient intelligence to outwit a thimble.'
);
Pour que ce qui précède fonctionne, vous devez définir une valeur par défaut pour cette colonne clé sur la table splog_adfarm. Ce qui est plus joli.