GreenPlum. Как создать ограничения на внешний ключ
Есть 2 таблицы:
table2:
CREATE TABLE public.table2 (
b serial4 NOT NULL,
b1 varchar NULL,
CONSTRAINT table2_pk PRIMARY KEY (b)
);
table1:
CREATE TABLE public.table1 (
a serial4 NOT NULL,
b int4 NULL,
d varchar NULL,
CONSTRAINT table1_pk PRIMARY KEY (a),
CONSTRAINT table1_fk FOREIGN KEY (b) REFERENCES public.table2(b)
);
При выполнении вставки в таблицу table1:
INSERT INTO public.table1
(a, b, d)
VALUES(nextval('table1_a_seq'::regclass), 3, 'Пример 3');
Ошибки не вызывает и это в Greenplum нормально.
Вопрос:
Как реализовать механизм контроля существования значений внешних ключей? Чтобы при выполнении вышеприведенной вставки база сообщала, что ключ в таблице table2 не найден.
Ответы (1 шт):
Greenplum accepts referential integrity constraints but does not enforce them.
Referential integrity syntax (foreign key constraints) is accepted but not enforced.
Как реализовать механизм контроля существования значений внешних ключей?
Ну, может, попробовать решить проблему экстенсивно? долой запросы, даёшь процедуры. А уж в процедуре можно проверить любые мыслимые условия..

