SQL statement in an error report for deferred constraint violation.
Hi,
While PQresultErrorField() from libpq allows to get context in which an error
occurred for immediate constraints, and thus an SQL statement which caused the
constraint violation, I cannot see any way to find out which SQL statement
caused an error in case of deferred constraints, in particular deferred foreign
key constraints.
Is there any way to check which SQL statement or at least which row violated a
constraint when it's deferred? If not does anyone know why there is such
restriction?
Konrad
Konrad Witaszczyk wrote
Hi,
While PQresultErrorField() from libpq allows to get context in which an
error
occurred for immediate constraints, and thus an SQL statement which caused
the
constraint violation, I cannot see any way to find out which SQL statement
caused an error in case of deferred constraints, in particular deferred
foreign
key constraints.Is there any way to check which SQL statement or at least which row
violated a
constraint when it's deferred? If not does anyone know why there is such
restriction?Konrad
signature.asc (981 bytes)
<http://www.postgresql-archive.org/attachment/6015088/0/signature.asc&gt;
First of all, you need to locate the problem SQL by modifying log
parameters.
sed -ir "s/#*logging_collector.*/logging_collector= on/"
$PGDATA/postgresql.conf
sed -ir "s/#*log_directory.*/log_directory = 'pg_log'/"
$PGDATA/postgresql.conf
sed -ir "s/#*log_statement.*/log_statement= 'all'/" $PGDATA/postgresql.conf
Execute this SQL and send error message in the log.
regards
Jack Gao
--
Sent from: http://www.postgresql-archive.org/PostgreSQL-general-f1843780.html