From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Rehan Saleem <pk_rehan(at)yahoo(dot)com> |
Cc: | "pgsql-sql(at)postgresql(dot)org" <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: PostgreSQL Function |
Date: | 2012-01-18 09:25:27 |
Message-ID: | CAFj8pRB-rJZVQMPoVJ+kNHg0BQmaiMdyN1BHXM9kiS+iczBfdg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Hello
2012/1/18 Rehan Saleem <pk_rehan(at)yahoo(dot)com>
> hi
> i want to create a function in postgresql that take input for columns from
> user for example first_name , last_name, addres. and will put them into
> table , and i also want to use exception if user enters wrong data. will
> some one help me how can i create thats function , because i am new to
> postgresql . i know how to do it in MS-SQL , i also have that code .if you
> dont understand what am trying to say . i can post<http://www.dbforums.com/#> sql
> code .thanks
>
>
CREATE TABLE users(id serial PRIMARY KEY, first_name varchar(10), last_name
varchar(10));
CREATE OR REPLACE FUNCTION new_user(fname varchar, lname varchar)
RETURNS int AS $$
DECLARE r int;
BEGIN
-- custom exception -- lname cannot be empty or NEMO
IF trim(lname) = '' OR lower(lname) = 'nemo' THEN
RAISE EXCEPTION 'bad last_name: "%"', lname;
END IF;
INSERT INTO users(first_name, last_name) VALUES(lname, fname) RETURNING
id INTO r;
RETURN r;
END;
$$ LANGUAGE plpgsql;
postgres=# select new_user('pavel','stehule');
new_user
----------
1
(1 row)
postgres=# select new_user('pavel','very long text');
ERROR: value too long for type character varying(10)
CONTEXT: SQL statement "INSERT INTO users(first_name, last_name)
VALUES(lname, fname) RETURNING id"
PL/pgSQL function "new_user" line 8 at SQL statement
postgres=# select new_user('pavel','nemo');
ERROR: bad last_name: "nemo"
postgres=#
Regards
Pavel Stehule
From | Date | Subject | |
---|---|---|---|
Next Message | Gary Stainburn | 2012-01-19 07:13:34 | date range to set of dates expansion |
Previous Message | Rehan Saleem | 2012-01-18 09:10:42 | PostgreSQL Function |