Re: create default - Mailing list pgsql-sql

From Jens Hartwig
Subject Re: create default
Date
Msg-id 3A5970F6.95DA47AD@debis.com
Whole thread Raw
In response to create default  ("guard" <guard@ficnet.net>)
List pgsql-sql
> hi,how to set default filed+field
> 
> create table "table1"(
>   "cno1" char(10)  default NEW.cno2+NEW.cno3,
>   "cno2" char(10) ,
>   "cno3" char(10)
> );
> 
> I try pl/pgsql and pl/tcl  NOT RUN,
> 
> thanks

Try the following:

CREATE FUNCTION test() RETURNS opaque AS   'BEGIN       IF new.cno1 IS NULL THEN           IF new.cno2 IS NULL THEN
         new.cno1 := substr(new.cno3,1,3);            ELSIF new.cno3 IS NULL THEN               new.cno1 :=
substr(new.cno2,1,3);           ELSE               new.cno1 := substr(new.cno2,1,3)||substr(new.cno3,1,3);
ENDIF;       END IF;       RETURN new;    END;'
 
LANGUAGE 'plpgsql';

CREATE TRIGGER test_trg
BEFORE INSERT OR UPDATE ON table1
FOR EACH ROW
EXECUTE PROCEDURE test();

INSERT INTO table1 (cno2, cno3) values ('abc', 'def');

SELECT * FROM table1;

Best regards, Jens Hartwig

=============================================
Jens Hartwig
---------------------------------------------
debis Systemhaus GEI mbH
10875 Berlin
Tel.     : +49 (0)30 2554-3282
Fax      : +49 (0)30 2554-3187
Mobil    : +49 (0)170 167-2648
E-Mail   : jhartwig@debis.com
=============================================


pgsql-sql by date:

Previous
From: Marko Kreen
Date:
Subject: Re: [HACKERS] md5 c code
Next
From: Jens Hartwig
Date:
Subject: Re: create default