среда, 16 сентября 2015 г.

Oracle. Как создать FK на поле из таблицы в другой схеме.

 По умолчанию, при попытке создать FK на поле из таблицы в другой схемы, получаем ошибку "недостаточно прав". Соответственно, надо добавить права приблизительно так:

GRANT REFERENCES ON <таблица из другой схемы> TO <пользователь, где таблица, в которой создаётся FK>;

Пример


-- добавляем разрешение
GRANT REFERENCES ON USER1.T15 TO USER2;

-- FK в таблице USER2.FK_TEST
alter table FK_TEST
  add constraint FK_F1 foreign key (F1)
  references USER1.T15(F1_ID);

Здесь,
таблица НА которую ссылается FK называется T15 и находится в пользователе USER1 (поле F1_ID),
а таблица, поле КОТОРОЙ ссылается на FK находится в пользователе USER2 и называется FK_TEST (поле с FK, соответственно F1)

Вот тут пример подробнее : http://www.akadia.com/services/ora_references_constraint.html