Re: Weird EXECUTE ... USING behaviour
От | Vincenzo Romano |
---|---|
Тема | Re: Weird EXECUTE ... USING behaviour |
Дата | |
Msg-id | 3eff28921001120624k47d00898p6d6df9bac95a7902@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Weird EXECUTE ... USING behaviour (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Weird EXECUTE ... USING behaviour
|
Список | pgsql-general |
2010/1/12 Tom Lane <tgl@sss.pgh.pa.us>: > Vincenzo Romano <vincenzo.romano@notorand.it> writes: >> In a PL/PgSQL function I have the following: >> ---- >> execute $l2$ >> alter table $l2$||ct||$l2$ add check( >> data>=$1::timestamp and data<$2::timestamp and maga=$3 ) >> $l2$ using rec.d0,rec.d1,rec.maga; >> ---- >> which yields to this error messsge: >> ERROR: there is no parameter $1 > > You can't use a parameter of the function in a CHECK constraint on a > table. The CHECK constraint is permanent and can't refer to transient > state like that. > > regards, tom lane > Tom, $1, $2 and $3 should be the substitution arguments from the USING predicate, not the function argument list, which in my case is an empty list! And the EXECUTE shoud implement a static binding with the "variables" from the USING predicate ... -- Vincenzo Romano NotOrAnd Information Technologies NON QVIETIS MARIBVS NAVTA PERITVS
В списке pgsql-general по дате отправления: