From: | Jens Hartwig <jhartwig(at)debis(dot)com> |
---|---|
To: | guard <guard(at)ficnet(dot)net>, pgsql-sql(at)postgresql(dot)org |
Subject: | Re: create default |
Date: | 2001-01-08 08:56:29 |
Message-ID: | 3A5980BD.9302B849@debis.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Sorry, there is a "bug" in my statement (according to debug issues), the
correct statement should be:
CREATE FUNCTION test() RETURNS opaque AS
'BEGIN
IF new.cno1 IS NULL THEN
IF new.cno2 IS NULL THEN
new.cno1 := trim(new.cno3);
ELSIF new.cno3 IS NULL THEN
new.cno1 := trim(new.cno2);
ELSE
new.cno1 := trim(new.cno2)||trim(new.cno3);
END IF;
END IF;
RETURN new;
END;'
LANGUAGE 'plpgsql';
BTW, for getting correct results, you should define cno1 as long as the
maximum length of cno2 and cno3 together (20).
Regards, Jens
Jens Hartwig schrieb:
>
> > 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);
> END IF;
> 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(at)debis(dot)com
=============================================
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2001-01-08 19:12:17 | Re: Strange Execution-Plan for NOT EXISTS |
Previous Message | Jens Hartwig | 2001-01-08 07:49:10 | Re: create default |