Search Postgresql Archives

Re: Simple stored procedure examples?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 3 Nov 2006, novnov wrote:

> I'm completely new to pgsql, using 8.1 and pgAdmin III. I'm not finding a lot
> of bare bones simple example stored procs that I can learn from. It would be
> very helpful if someone could show me some simple code.
>
> In the pgAdmin interface I've been picking SQL as the language, that's the
> default it offers.
>
> Say I have a table Item, and fields ItemID (int4) and ItemName (varchar).
> What would be the code for
>
> #1 updating ItemName for all rows to 'fox'
>
> #2 updating ItemName for row where ItemID = 2 to 'fox'
>
> #3 updating ItemName for row where ItemID = 3 to a param value passed in

I think something like:
sszabo=# create table "Item"("ItemID" int4, "ItemName" varchar);
CREATE TABLE
sszabo=# create function f1() returns void as $$update "Item" set
"ItemName"='fox';$$ language 'sql';
CREATE FUNCTION
sszabo=# create function f2() returns void as $$update "Item" set
"ItemName"='fox' where "ItemID"=2;$$ language 'sql';
CREATE FUNCTION
sszabo=# create function f3(varchar) returns void as $$update "Item" set
"ItemName"=$1 where "ItemID"=3;$$ language 'sql';
CREATE FUNCTION
sszabo=# insert into "Item" values (1, 'aaa');
INSERT 0 1
sszabo=# insert into "Item" values (2, 'bbb');
INSERT 0 1
sszabo=# insert into "Item" values (3, 'ccc');
INSERT 0 1
sszabo=# select * from "Item";
 ItemID | ItemName
--------+----------
      1 | aaa
      2 | bbb
      3 | ccc
(3 rows)

sszabo=# select f2();
 f2
----

(1 row)

sszabo=# select * from "Item";
 ItemID | ItemName
--------+----------
      1 | aaa
      3 | ccc
      2 | fox
(3 rows)

sszabo=# select f1()
sszabo-# ;
 f1
----

(1 row)

sszabo=# select * from "Item";
 ItemID | ItemName
--------+----------
      1 | fox
      3 | fox
      2 | fox
(3 rows)

sszabo=# select f3('monkey');
 f3
----

(1 row)

sszabo=# select * from "Item";
 ItemID | ItemName
--------+----------
      1 | fox
      2 | fox
      3 | monkey
(3 rows)

As a note, you'll probably pretty quickly move into things for which SQL
isn't a good fit, so you might want to look at plpgsql as well.

> That would be so helpful...I've tried and get errors like "ERROR relation
> "item" does not exist", and of course the table Item and the column ItemName
> do exist, haven't been able to figure out what the error means.

The names were probably doublequoted when created (possibly automatically
by your creating client application) which means you'd need to double
quote them on use as well. Regular (unquoted) identifiers are case-folded,
so "Item" != Item.



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux