From: | Michael Wood <esiotrot(at)gmail(dot)com> |
---|---|
To: | "coviolo(at)libero(dot)it" <coviolo(at)libero(dot)it> |
Cc: | pgsql-novice(at)postgresql(dot)org |
Subject: | Re: problem with variable |
Date: | 2010-06-09 14:54:44 |
Message-ID: | AANLkTimGKvYg9sm6ZPh18Gc_7hcQwK3ycVlM6qb4xbaS@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice |
On 9 June 2010 16:51, Michael Wood <esiotrot(at)gmail(dot)com> wrote:
> Hi
>
> On 9 June 2010 16:24, coviolo(at)libero(dot)it <coviolo(at)libero(dot)it> wrote:
>> something like this:
>>
>> IF (TG_OP = 'UPDATE') THEN
>> EXECUTE 'CREATE TABLE '||NEW.nome_tabella||' (ordinativo serial PRIMARY KEY
>> CHECK (nome_tabella = '''||NEW.nome_tabella||'''::text))
>> INHERITS (database_t);
>>
>> 3 quotes first and 3 quotes after the second variable?
>
> Just a guess, but I think this is what you want:
>
> IF (TG_OP = 'UPDATE') THEN
> EXECUTE 'CREATE TABLE ' || NEW.nome_tabella || ' (ordinativo serial PRIMARY KEY
> CHECK (nome_tabella = "' || NEW.nome_tabella || '"::text))
> INHERITS (database_t);'
>
> i.e. you want:
>
> CREATE TABLE table_name (x serial PRIMARY KEY
> CHECK (column_name = "table_name"::text))
> INHERITS (database_t);
Sorry, I was talking nonsense. You want column_name = 'table_name'
but because the ' will be inside a quoted string, you need to double
it. So you were right. Use ...nome_tabella = ''' || NEW.nome_tabella
|| '''::text...
--
Michael Wood <esiotrot(at)gmail(dot)com>
From | Date | Subject | |
---|---|---|---|
Next Message | coviolo@libero.it | 2010-06-09 15:23:36 | Re: problem with variable |
Previous Message | Michael Wood | 2010-06-09 14:51:18 | Re: problem with variable |