Some functions in Postgresql relative to my case study

July 18, 2008
 CREATE OR REPLACE FUNCTION AssignID()RETURNS INTEGER AS '
   DECLARE

      id integer;
 BEGIN
	SELECT into id max(Refc)
	FROM customer;

        return (id+1);
 END;
'LANGUAGE PLPGSQL;

select * from AssignID();

Create a table in PostgreSql

July 15, 2008
    CREATE TABLE customer (
             Refc 		SERIAL,
             title 		varchar(3) NOT NULL,
             fname 		varchar(25) NOT NULL,
             lname 		varchar(25) NOT NULL,
             address 	varchar(50) NOT NULL,
             phone 		varchar(7) NOT NULL,
             nic 		varchar(14) NOT NULL,
            CONSTRAINT customer_pkey PRIMARY KEY ( Refc ),
            CONSTRAINT vehicle_Refc_key UNIQUE (Refc)

        );

--INSERT INTO customer VALUES(1,'Mr','Atish Koomar','Rajub','School Lane Chamouny,Savanne','6455673','F090234201723');
--INSERT INTO customer VALUES(2,'Mr','Vikesh','Hosanee','Rose-Hill','9675645','H2202872401243');
------------------------------------------------------------------------------
CREATE TABLE vehicle (
      Refv 			integer NOT NULL,
     DOA 			date 	NOT NULL,
     make 			varchar(30) NOT NULL,
     vtype 			varchar(15) NOT NULL,
     origin 		varchar(30) NOT NULL,
    description 		varchar(50) NOT NULL,
    vyear 			date 	NOT NULL,
    colour 		varchar(15) NOT NULL,
    purchase_price 	double precision NOT NULL,
   reserved 		boolean NOT NULL,
   sold 			boolean NOT NULL,
   engine 		varchar(35) NOT NULL,
   speed_trans            integer NOT NULL,
   CONSTRAINT vehicle1_pkey PRIMARY KEY (Refv),
   CONSTRAINT vehicle1_Refv_key UNIQUE (Refv)
);
--INSERT INTO vehicle values(1,'2008-02-15','Subaru Imprezza','Car','Japan','4-Door Handle Cosmic wheels support','2007-01-01','Grey-Black',1200000,false,false,'3000CC',6);
--INSERT INTO vehicle values(2,'2008-02-22','Nissan Skyline','Car','China','4-Door-Cosmic wheels-Tuned Sporty Look','2007-12-09','Red',1500000,false,false,'3500CC',6);
------------------------------------------------------------
CREATE TABLE spareparts (
    Refs 		integer NOT NULL,
   DOA 		date NOT NULL,
   origin 	varchar(15) NOT NULL,
   description 	varchar(50) NOT NULL,
   stype 		varchar(18) NOT NULL,
   make 		varchar(20) NOT NULL,
   buying_price   double precision NOT NULL,
   numstock 	integer NOT NULL,
   sold 		boolean NOT NULL,
   reserved 	boolean NOT NULL,
   CONSTRAINT spareparts_pkey PRIMARY KEY (Refs) ,
  CONSTRAINT spareparts_Refs_key UNIQUE (Refs)
  );
--INSERT INTO spareparts VALUES(1,'2008-04-28','Indonesia','Sporty Aerodynamic Wipers','4x4','Toyota',1500,2,false,false);
--INSERT INTO spareparts VALUES(2,'2008-03-02','China','Fly Wheel','Car','Zenith',3500,5,false,false);

CREATE TABLE spsales (
     salesid 	integer NOT NULL,
     Refs 		integer references spareparts(Refs) NOT NULL,
     Refc 		integer references customer(Refc) NOT NULL,
     tax 		real NOT NULL,
     Cur_date 	date NOT NULL,
     selling_price 	real NOT NULL,
     qty		int  NOT NULL,
    CONSTRAINT spsales_pkey PRIMARY KEY (salesid) ,
    CONSTRAINT spareparts_salesid_key UNIQUE (salesid));

--INSERT INTO spsales VALUES(1,1,1,15.5,CURRENT_DATE,3700.05,1);
--INSERT INTO spsales VALUES(2,2,2,15.5,CURRENT_DATE,300.50,2);

CREATE TABLE Vehisale (
     SALESID 		integer NOT NULL,
     Refv 			integer references vehicle(Refv) NOT NULL,
     Refc 			integer references customer(Refc) NOT NULL,
     tax 			real NOT NULL,
     Cur_date 		date NOT NULL,
     selling_price 		real NOT NULL,
    CONSTRAINT Vehisale_pkey PRIMARY KEY (SALESID) ,
    CONSTRAINT Vehisale_SALESID_key UNIQUE (SALESID));

--INSERT INTO Vehisale VALUES(1,1,1,15.5,CURRENT_DATE,1700000);
--INSERT INTO Vehisale VALUES(2,2,2,15.5,CURRENT_DATE,1200000);

July 7, 2008

Postgresql Codes to add in an array

  create or replace function AddArray(integer [],integer[])returns integer[]) as '
declare

                  a alias for $1;
                  b alias for $2;
                  c integer [];

             begin
                 c:=''{}'';
                    for i in 1..5 loop

                       c[i]:=a[i]+b[i];

                    end loop;

                    return c;

  end;
' language plpgsql;

select AddArray('{12,21,53,1,34}','{23,56,7,8,2}');