Обсуждение: Unique Number KEY
Hello,
What is the best way, with PostGres, to create a Unique Number Key
Generator?
For example, I have a STUDENTS table:
{
StudentNumber integer;
StudentName char[40];
...
}
Beginner in SQL, I think I must use Primary key or something like that, to
be sure StudentNumber is unique.
But, I want StudentNumber to be generated automatically, the user don't
worry in assigning a StudentNumber.
What is the best way to do that with PostGres-SQL ?
Thank you for your answers and sorry for my poor english,
Patrice DUMAS
Ardèche, FRANCE.
pdumas@inforoutes-ardeche.fr
Patrice DUMAS wrote:
> Hello,
>
> What is the best way, with PostGres, to create a Unique Number Key
> Generator?
>
> For example, I have a STUDENTS table:
> {
> StudentNumber integer;
> StudentName char[40];
> ...
> }
you have 2 ways to do it:
1. try something like
CREATE TABLE STUDENTS(
studentID int4 DEFAULT 'int(now())',
studentName text );
then if you say:
INSERT INTO STUDENTS (studentName) VALUES ('Patrice DUMAS jr.') ;
you will get an unique ID generated from a timestamp returned by now() .
2. by using a sequence.See \h create sequence and nextval() function.
This is a better way to get an ordered ID ( with an increment specified
by you).
CIMPOESU Teodor <teo@digiro.net> writes: > you have 2 ways to do it: > 1. try something like > CREATE TABLE STUDENTS( > studentID int4 DEFAULT 'int(now())', > studentName text ); Is suspect int(now()) to have a resolution of one second. Therefore this will not work if you insert more than one record in a second. Christophe Labouisse : Cinéma, typographie, Unix christophe.labouisse@dial.oleane.com http://www.multimania.com/gabuzo/ Le cinéma en Lumière : http://www.lumiere.org/