BUG #17732: pg_restore fails with check constraint
От | PG Bug reporting form |
---|---|
Тема | BUG #17732: pg_restore fails with check constraint |
Дата | |
Msg-id | 17732-2f5c2de910c26e60@postgresql.org обсуждение исходный текст |
Ответы |
BUG #17732: pg_restore fails with check constraint
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 17732 Logged by: Artem Email address: artem.voropaev@hotmail.com PostgreSQL version: 13.9 Operating system: Debian Description: Hi team! We faced an error using pg_restore on our database. We have database tables like this one: CREATE FUNCTION public.table_b_check ( id_b int ) RETURNS int AS $$ BEGIN if id_b is null then return 1; end if; return coalesce((select 1 from public.tableB where id = id_b), 0); END; $$ LANGUAGE plpgsql; CREATE TABLE public.tableA ( id integer NOT NULL, idb integer NOT NULL, value varchar(40) NOT NULL, CONSTRAINT CK_Field_Id_b CHECK ((public.table_b_check(idb::int)=(1))) ); CREATE TABLE public.tableB ( id integer NOT NULL, value varchar(40) NOT NULL ); INSERT INTO public.tableB VALUES (1, 'a'); INSERT INTO public.tableB VALUES (2, 'b'); INSERT INTO public.tableA VALUES (1, 1, 'a'); INSERT INTO public.tableA VALUES (2, 2, 'b'); We backuped this database with pg_dump and then trying to restore it by pg_restore, but error occured on tableA: pg_restore: error: COPY failed for table "tablea": ERROR: new row for relation "tablea" violates check constraint "ck_field_id_b" DETAIL: Failing row contains (1, 1, a). CONTEXT: COPY tablea, line 1: "1 1 a" As we understand that this happens because restore function works in alphabetical order on tables. we've tryed to use pre-data/post-data option but have ho succes. In all cases we've lost data in tableA. Is there any solution for this specific problem?
В списке pgsql-bugs по дате отправления: