Thread: problem wit hsequence as primary key
Hi, I was insertingrows into a table and had this error: Cannot insert a duplicate key into unique index stock_transactions_pkey Now the primary key is inserted by this function: CREATE FUNCTION "set_primary_key" () RETURNS text AS ' DECLARE sequence_number text; location_number text; retval text; BEGIN location_number := to_char(get_loc_key(),''999MI''); location_number := trim(both '' '' from location_number); sequence_number := to_char(nextval(''location_seq''),''99999MI''); sequence_number := trim(both '' '' from sequence_number); retval := location_number || ''-'' || sequence_number; RETURN retval; END; ' LANGUAGE 'plpgsql'; which results in valuse like 12-1234 as a text primary key. The location_seq is up to 100005 at the moment so how am I getting duplicate primary keys? -- * * Rob Brown-Bayliss *
Rob Brown-Bayliss <rob@zoism.org> writes: > sequence_number := to_char(nextval(''location_seq''),''99999MI''); > The location_seq is up to 100005 at the moment so how am I getting > duplicate primary keys? Time for more 9's in that to_char format, perhaps? regards, tom lane
On Sat, 2002-07-27 at 03:20, Tom Lane wrote: > Rob Brown-Bayliss <rob@zoism.org> writes: > > sequence_number := to_char(nextval(''location_seq''),''99999MI''); > > > The location_seq is up to 100005 at the moment so how am I getting > > duplicate primary keys? > > Time for more 9's in that to_char format, perhaps? > Yeah :o) I had a break and a cup o tea and then it was obvious... Thanks Now a nother question, useinga text based primary on large tables. Will this slow down queries or does it not really matter? Thanks -- * * Rob Brown-Bayliss *