Next Employee ID

From: Herbert Rabago Ambos <herbert(at)hindang(dot)msuiit(dot)edu(dot)ph>
To: pgsql-sql(at)postgresql(dot)org
Subject: Next Employee ID
Date: 2000-02-26 00:12:25
Message-ID: Pine.LNX.4.10.10002260808001.30045-100000@hindang.msuiit.edu.ph
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql


Hi,

I've been trying to find out what's wrong with my function:

create function Next_Employee_ID() returns text AS '
declare
Emp as RECORD;
CurYear as text;
NextEmpYrNo as int;

begin
-- get current year
CurYear := substr( datetime_text(now()), 21,4);

-- read latest employee.id
Select max(id) into Emp from Employee
Where id like CurYear || ''%'';

if not found then
-- create new sequence starting from "current year" +
-- "-001"::text
return CurYear || ''-001'';
else
-- extract last 3 chars -- convert it to int -- add 1
NextEmpYrNo := substr(Emp.max, 6, 3)::int + 1;
return CurYear || ''-'' || NextEmpYrNo::text;
end if;
end;' language 'plpgsql';

I have an employee table who have an field named id of type varchar(8);

herbert

Browse pgsql-sql by date

  From Date Subject
Next Message Mark Kirkwood 2000-02-26 06:57:06 New Optimizer Behaviour In 7.0b1
Previous Message Bruce Momjian 2000-02-25 16:54:40 Re: [SQL] how to create index on timestamp field in pre v7 database