Skip site navigation (1) Skip section navigation (2)

Re: problem with variable

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:51:18
Message-ID: AANLkTimKm2EO9D42jPzL8SAlEG-j03Dx6xK0eKOyZUF5@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-novice
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);

The first "table_name" is not quoted.  The second one has
double-quotes (") around it.  So you need the whole thing to be quoted
with single-quotes (') and then use '...' || variable || '...' for the
first one and '..."' || variable || '"::text...' for the second one.

I hope that makes sense.

-- 
Michael Wood <esiotrot(at)gmail(dot)com>

In response to

Responses

pgsql-novice by date

Next:From: Michael WoodDate: 2010-06-09 14:54:44
Subject: Re: problem with variable
Previous:From: coviolo@libero.itDate: 2010-06-09 14:24:36
Subject: Re: problem with variable

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group