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
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 |