Thread: Default Value in Table Setup Help

Default Value in Table Setup Help

From
Dev
Date:
Hello all,

I am working on setting up a table that will append a sequence to the end
of the value inserted.
Example;
INSERT INTO test (test) VALUES ('abcd');
And have the data in the database be;
abcd0001

Now I do have things setup else where were the default value for the field
is such:
default ('abcd'::text || lpad(text(nextval('test_sequence'::text)), 4,
'0'::text))

But i want the "abcd" or what erver to be added in the insert?

What am I missing to make this happen?



Re: Default Value in Table Setup Help

From
Adam Kavan
Date:
At 02:57 PM 8/18/03 -0400, Dev wrote:
>Hello all,
>
>I am working on setting up a table that will append a sequence to the end
>of the value inserted.
>Example;
>INSERT INTO test (test) VALUES ('abcd');
>And have the data in the database be;
>abcd0001
>
>Now I do have things setup else where were the default value for the field
>is such:
>default ('abcd'::text || lpad(text(nextval('test_sequence'::text)), 4,
>'0'::text))
>
>But i want the "abcd" or what erver to be added in the insert?
>
>What am I missing to make this happen?

I don't think you can do what you want to do with a column
default.  Instead you want to look at the rewrite rules.  You can find
information about them here:

http://www.postgresql.org/docs/7.3/interactive/sql-createrule.html

If I'm wrong I'm sure someone here will correct me :).

--- Adam Kavan
--- akavan@cox.net


Re: Default Value in Table Setup Help

From
Stephan Szabo
Date:
On Mon, 18 Aug 2003, Dev wrote:

> Hello all,
>
> I am working on setting up a table that will append a sequence to the end
> of the value inserted.
> Example;
> INSERT INTO test (test) VALUES ('abcd');
> And have the data in the database be;
> abcd0001
>
> Now I do have things setup else where were the default value for the field
> is such:
> default ('abcd'::text || lpad(text(nextval('test_sequence'::text)), 4,
> '0'::text))
>
> But i want the "abcd" or what erver to be added in the insert?
>
> What am I missing to make this happen?

You don't want to use a default (since that'll be ignored if you actually
pass in a value for the column).  You probably want a before trigger that
alters the value that was inserted before the insertion actually happens.


Re: Default Value in Table Setup Help

From
Bruno Wolff III
Date:
On Mon, Aug 18, 2003 at 14:57:12 -0400,
  Dev <dev@umpa-us.com> wrote:
> Hello all,
>
> I am working on setting up a table that will append a sequence to the end
> of the value inserted.
> Example;
> INSERT INTO test (test) VALUES ('abcd');
> And have the data in the database be;
> abcd0001
>
> Now I do have things setup else where were the default value for the field
> is such:
> default ('abcd'::text || lpad(text(nextval('test_sequence'::text)), 4,
> '0'::text))
>
> But i want the "abcd" or what erver to be added in the insert?
>
> What am I missing to make this happen?

I think you want to use a trigger to do this. The default function only
gets used if you don't supply a value.