Hi, All!

I have the tables as defined:

create table style
(
  ID_STYLE             INT4 not null,
  STYLE_STRING         VARCHAR              not null,
  constraint PK_STYLE primary key (ID_STYLE)
);

create table style_type_object
(
  ID_TYPE_OBJECT       INT4                 not null,
  ID_STYLE             INT4                 not null,
  ZOOMABLE             BOOL                 not null default false,
  START_SCALE          INT4                 not null,
  END_SCALE            INT4                 not null
);

alter table STYLE_TYPE_OBJECT
  add constraint FK_ID_STYLE foreign key (ID_STYLE)
     references STYLE (ID_STYLE)
     on delete restrict on update restrict;

create table style_1
(
   constraint PK_STYLE_1 primary key (id_style),
   check (id_style between 1 and 10000)
) inherits (style);


create rule r_style_1 as on insert to style
where (id_style between 1 and 10000)
do instead
     insert into style_1 (id_style, style_string)
     values(new.id_style, new.style_string);


insert into style values (2,  'PEN(w:1px)' );

vka7=# select id_style, style_string from style;
id_style | style_string
----------+--------------
       2 | PEN(w:1px)


vka7=# insert into style_type_object values(1, 2, false, 0, 0);
ERROR:  insert or update on table "style_type_object" violates foreign key
constraint "fk_id_style"
DETAIL:  Key (id_style)=(2) is not present in table "style".


THE QUESTION IS: are there any abilities to check foreign key constraint not
only in master table, but also in all tables that inherited the master?

Thanks in advance.

Sergey Karin

Reply via email to