Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Foreign Key на таблицу из другой базы ???  [new]
N_Vorontsov
Member

Откуда: Рыбинск, Яр.обл.
Сообщений: 32
Доброго времени суток...

Есть таблица list_table (id, id_sprav)в схеме user1@orcl1.
Есть справочник sprav_table (id, Name) в схеме user2@orcl2.

Как говорится "внимание вопрос": можно ли каким-то образом организовать ForeignKey с list_table.id_sprav -> sprav_table.id, если эти таблицы на разных серверах ???

Или это мечты, а в реальности все ограничивается объектами внутри схемы???
26 июл 06, 09:31    [2925761]     Ответить | Цитировать Сообщить модератору
 Re: Foreign Key на таблицу из другой базы ???  [new]
Ааз
Member

Откуда: Москва/Протвино
Сообщений: 4274
N_Vorontsov
Или это мечты, а в реальности все ограничивается объектами внутри схемы???
Внутри базы.

Всего
26 июл 06, 11:38    [2926537]     Ответить | Цитировать Сообщить модератору
 Re: Foreign Key на таблицу из другой базы ???  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7133
SQL> create database link drop_me_dbl connect to scott identified by tiger using 'lejnin';

Database link created.

SQL> desc tab@drop_me_dbl
Name Null? Type
----------------------------------------- -------- ----------------------------
TNAME NOT NULL VARCHAR2(30)
TABTYPE VARCHAR2(7)
CLUSTERID NUMBER

SQL> connect scott/tiger@lejnin
Connected.
SQL> create table drop_me_t1 ( id number primary key, name varchar2(30));

Table created.

SQL> connect lejnin/pwd
Connected.
SQL> desc drop_me_t1@drop_me_dbl
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NOT NULL NUMBER
NAME VARCHAR2(30)
SQL>
1 create or replace view drop_me_t1
2 (id primary key RELY DISABLE NOVALIDATE,
3 name)
4* as select id ,name from drop_me_t1@drop_me_dbl
SQL> /

View created.

SQL> alter view drop_me_t1 modify constraint drop_me_t1_pk norely;

View altered.

SQL>
1 create table drop_me_t2
2 (
3 id number primary key,
4 fk number constraint drop_me_t2_fk REFERENCES drop_me_t1( ID ) NORELY DISABLE NOVALIDATE
5* )
SQL> /

Table created.

SQL> spool off
26 июл 06, 14:01    [2928047]     Ответить | Цитировать Сообщить модератору
 Re: Foreign Key на таблицу из другой базы ???  [new]
N_Vorontsov
Member

Откуда: Рыбинск, Яр.обл.
Сообщений: 32
я говорил "на разных серверах" ....
Database Link не прокатит - в доке описаны ограничения, одно из них касаемо constaint's... :-(
26 июл 06, 14:36    [2928371]     Ответить | Цитировать Сообщить модератору
 Re: Foreign Key на таблицу из другой базы ???  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18351
Vadim Lejnin
fk number constraint drop_me_t2_fk REFERENCES drop_me_t1( ID )

И что, работает?
26 июл 06, 14:37    [2928380]     Ответить | Цитировать Сообщить модератору
 Re: Foreign Key на таблицу из другой базы ???  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7133
andrey_anonymous
Vadim Lejnin
fk number constraint drop_me_t2_fk REFERENCES drop_me_t1( ID )

И что, работает?

При определенных условиях:
1) При создании view обязательно указывать RELY DISABLE NOVALIDATE
После создания его можно перевести в NORELY

2) При создании кляуза у FK обязана быть такой же как и во view

p.s. Проверял на
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

SQL>
26 июл 06, 14:47    [2928461]     Ответить | Цитировать Сообщить модератору
 Re: Foreign Key на таблицу из другой базы ???  [new]
Ааз
Member

Откуда: Москва/Протвино
Сообщений: 4274
Vadim Lejnin
...
Ух ты, забавно :-). Интересно, работает ли эта байда (что создать можно - убедил), и если да, то насколько хорошо. Чета я бы лично поостерегся такое рекомендовать в production... Ибо стремно. Уж индекс по внешнему ключу построил бы стопудово. Занес в список "домашних заданий" ;-).

Всего
26 июл 06, 14:52    [2928514]     Ответить | Цитировать Сообщить модератору
 Re: Foreign Key на таблицу из другой базы ???  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7133
N_Vorontsov
я говорил "на разных серверах" ....
Database Link не прокатит - в доке описаны ограничения, одно из них касаемо constaint's... :-(

Поподробнее что значит разные СЕРВЕРА
1) 2 физических oracle сервера соединенных сетью
2) 2 физических сервера не связанных между собой с установленными и там и там СУБД Oracle (Возможно разных версий)
3) 2 разные СУБД например Oracle и файл на excel
26 июл 06, 14:53    [2928522]     Ответить | Цитировать Сообщить модератору
 Re: Foreign Key на таблицу из другой базы ???  [new]
N_Vorontsov
Member

Откуда: Рыбинск, Яр.обл.
Сообщений: 32
2 физических Oracle сервера, соединенных сетью.
В tns-е одного прописан другой, так что Database_Link создавать конечно мона...
26 июл 06, 14:59    [2928570]     Ответить | Цитировать Сообщить модератору
 Re: Foreign Key на таблицу из другой базы ???  [new]
ModelR
Member

Откуда: Нижний Новгород
Сообщений: 1798
Для вьюшек исключительно DISABLE NOVALIDATE .
Т.е. при DML констрейнт проверяться не будет.
Может оптимизатору помогает.
26 июл 06, 15:07    [2928647]     Ответить | Цитировать Сообщить модератору
 Re: Foreign Key на таблицу из другой базы ???  [new]
contr
Member

Откуда:
Сообщений: 1909
ModelR
Для вьюшек исключительно DISABLE NOVALIDATE .
Т.е. при DML констрейнт проверяться не будет.

Только вчера было. Для вьюшки-то как раз проверяться будет, поскольку обеспечивается соответствующим ограничением базового объекта...
А вот на счет ограничений ссылочной целостности (fk) - сильно не уверен, поскольку создается только со статусом DISABLED ;)
Вероятно, закладка на будущее...
26 июл 06, 15:38    [2928929]     Ответить | Цитировать Сообщить модератору
 Re: Foreign Key на таблицу из другой базы ???  [new]
ModelR
Member

Откуда: Нижний Новгород
Сообщений: 1798
contr
Только вчера было. Для вьюшки-то как раз проверяться будет, поскольку обеспечивается соответствующим ограничением базового объекта...
Ну что-то где-то будет:), но
contr

А вот на счет ограничений ссылочной целостности (fk) - сильно не уверен, поскольку создается только со статусом DISABLED ;)
Вероятно, закладка на будущее...
тема исключительно о нем (fk) - он не будет.
26 июл 06, 15:51    [2929030]     Ответить | Цитировать Сообщить модератору
 Re: Foreign Key на таблицу из другой базы ???  [new]
contr
Member

Откуда:
Сообщений: 1909
ModelR
(fk) - он не будет.

Ну так о том и был вопрос
;)
26 июл 06, 16:02    [2929134]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить