2010/1/12 Tom Lane <tgl@xxxxxxxxxxxxx>: > Vincenzo Romano <vincenzo.romano@xxxxxxxxxxx> 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 -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general