Re: Newbie question: How to CREATE FUNCTION
От | Joe Conway |
---|---|
Тема | Re: Newbie question: How to CREATE FUNCTION |
Дата | |
Msg-id | 3EC30583.8040608@joeconway.com обсуждение исходный текст |
Ответ на | Newbie question: How to CREATE FUNCTION ("Steven Chau" <stevenc@astri.org>) |
Список | pgsql-sql |
Steven Chau wrote: > Hi, > > I am new to PostgreSQL. So, please forgive my ignorane. > > Can anyone tell me how to create a FUNCTION in PostgreSQL that performs the > same duty as the following MsSQL stored procedure? Here it is without any commentary. I'll leave the explanation to some quality time spent with the fine manual. Here are a couple of starting points: http://www.us.postgresql.org/users-lounge/docs/7.3/postgres/functions-sequence. http://www.us.postgresql.org/users-lounge/docs/7.3/postgres/plpgsql.html -- create a sequnce and the employees table create sequence public.employees_id_seq; create table public.employees( id integer not null default nextval('public.employees_id_seq') primary key, name text,title text ); -- create the addemployee function in plpgsql CREATE OR REPLACE FUNCTION addemployee(text, text) RETURNS integer AS ' DECLARE v_name alias for $1; v_title alias for $2; v_rowcount integer; v_id integer; BEGIN -- Add the employee into the Employees table INSERT INTO employees (name, title) VALUES (v_name, v_title); GET DIAGNOSTICS v_rowcount = ROW_COUNT; IF v_rowcount != 1 THEN -- Error v_id := -1; ELSE -- Otherwise return the idthrough SELECT into v_id currval(''public.employees_id_seq''); END IF; RETURN v_id; END; ' LANGUAGE 'plpgsql'; regression=# SELECT addemployee('John Doe', 'DBA'); addemployee ------------- 1 (1 row) regression=# SELECT addemployee('Jane Foo', 'Senior DBA'); addemployee ------------- 2 (1 row) regression=# SELECT * FROM employees; id | name | title ----+----------+------------ 1 | John Doe | DBA 2 | Jane Foo | Senior DBA (2 rows) > Can you also tell me how to add a new language (if necessary) like pgsql > into PostgreSQL? Pointers to learning pgsql will also be appreciated. > http://www.us.postgresql.org/users-lounge/docs/7.3/postgres/xplang-install.html HTH, Joe
В списке pgsql-sql по дате отправления: