Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Собираюсь партиционировать таблицу, НО временно не удалить хотя CONSTRAINTS DISABLED  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6656
Приветствую!

Собираюсь партиционировать таблицу (Oracle 9.2).

Раскопал, что так просто не сделать, надо её пересоздать. И перезалить данные в копию.

OK. во всех связанных таблицах и этой:
1) все индексы выставил в UNUSABLE
2) все констреинты выставил в DISABLED
3) все триггеры выставил в DISABLED

выполняю DROP TABLE ticket
получаю ORA-02449: unique/primary keys in table referenced by foreign keys


Я бы не хотел удалять CONSTREINT'ы.
Это вообще возможно в моем случае? Спасибо.
6 мар 17, 13:55    [20266905]     Ответить | Цитировать Сообщить модератору
 Re: Собираюсь партиционировать таблицу, НО временно не удалить хотя CONSTRAINTS DISABLED  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1642
1. Вообще не нужен.
2. Как определили "все"?
3. Вообще не нужен.
6 мар 17, 14:07    [20266952]     Ответить | Цитировать Сообщить модератору
 Re: Собираюсь партиционировать таблицу, НО временно не удалить хотя CONSTRAINTS DISABLED  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1642
И, собсно, зачем DROP? Create, insert, rename.
6 мар 17, 14:08    [20266958]     Ответить | Цитировать Сообщить модератору
 Re: Собираюсь партиционировать таблицу, НО временно не удалить хотя CONSTRAINTS DISABLED  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6656
С 1) и 3) вы правы, это я на всякий случай, чтобы не мешали :)

"все" вопервых так

select 'ALTER TABLE '||c.owner||'.'||c.table_name||' '||
       'MODIFY CONSTRAINT "'||c.constraint_name||'" DISABLE;'        
from all_constraints c
where 
   c.OWNER= '...' and
   c.TABLE_NAME in (...,  -- здесь список всех связанных таблиц
                    ...,
                    ...
                    );


а потом проверил, там везде STATUS=DISABLED
SELECT constraint_name, status  FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'TICKET';
6 мар 17, 14:13    [20266985]     Ответить | Цитировать Сообщить модератору
 Re: Собираюсь партиционировать таблицу, НО временно не удалить хотя CONSTRAINTS DISABLED  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6656
dmdmdm
И, собсно, зачем DROP? Create, insert, rename.


Я надеялся, что когда пересоздаду таблицу под старым именем, то констреинты сами подхватят новую ссылку.
А так, после переименования, они несмотря на статус DISABLED ссылаются на переименованную таблицу.
Хотел как проще.
6 мар 17, 14:19    [20267003]     Ответить | Цитировать Сообщить модератору
 Re: Собираюсь партиционировать таблицу, НО временно не удалить хотя CONSTRAINTS DISABLED  [new]
Elic
Member

Откуда:
Сообщений: 29991
Кроик Семён
Я надеялся, что когда пересоздаду таблицу под старым именем, то констреинты сами подхватят новую ссылку.
А до "пересоздаду" они в космос смотреть будут? А если никогда не "пересоздаду"?
6 мар 17, 14:25    [20267019]     Ответить | Цитировать Сообщить модератору
 Re: Собираюсь партиционировать таблицу, НО временно не удалить хотя CONSTRAINTS DISABLED  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6656
Elic,

ОК, я понял.


P.S.
и просто, для очистки совести, запрос для проверки статуса неправильный привел. Так надо:

select 
   table_name, 
   constraint_name, 
   status, 
   owner
from 
   USER_CONSTRAINTS
where
   constraint_type = 'R' and
   r_constraint_name in
   (
      select constraint_name 
      from USER_CONSTRAINTS
      where 
         constraint_type in ('P', 'U') and
         table_name = 'TICKET'
   )
order by 
   table_name, 
   constraint_name
6 мар 17, 14:32    [20267043]     Ответить | Цитировать Сообщить модератору
 Re: Собираюсь партиционировать таблицу, НО временно не удалить хотя CONSTRAINTS DISABLED  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6656
Всем спасибо!
6 мар 17, 14:33    [20267046]     Ответить | Цитировать Сообщить модератору
 Re: Собираюсь партиционировать таблицу, НО временно не удалить хотя CONSTRAINTS DISABLED  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
dbms_redefinition еще не рассматривал?
6 мар 17, 15:07    [20267246]     Ответить | Цитировать Сообщить модератору
 Re: Собираюсь партиционировать таблицу, НО временно не удалить хотя CONSTRAINTS DISABLED  [new]
--Eugene--
Member

Откуда: Боярышник
Сообщений: 2170
Вячеслав Любомудров,

а редефинишен с какой версии сделали?
6 мар 17, 15:43    [20267500]     Ответить | Цитировать Сообщить модератору
 Re: Собираюсь партиционировать таблицу, НО временно не удалить хотя CONSTRAINTS DISABLED  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
--Eugene--
Вячеслав Любомудров,

а редефинишен с какой версии сделали?


Уже было в 9.2.
6 мар 17, 16:01    [20267611]     Ответить | Цитировать Сообщить модератору
 Re: Собираюсь партиционировать таблицу, НО временно не удалить хотя CONSTRAINTS DISABLED  [new]
--Eugene--
Member

Откуда: Боярышник
Сообщений: 2170
suPPLer
Уже было в 9.2.
тогда вообще не понимаю че ТС парится
6 мар 17, 16:11    [20267662]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить