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

Откуда:
Сообщений: 13
Суть проблемы:
Есть таблица, в которой имеютсz поля ID, PAR_ID связанные по FK

alter table T1 add constraint FK_ID_T1 foreign key (PAR_ID)
references T1 (ID);


При удалении DELETE FROM T1 возникае ошибка, ругается, что для ID не существует PAR_ID ...

Можно ли не отключая FK, с помощью обычной инструкции DELETE удалить все записи из таблицы ?
10 ноя 07, 18:23    [4900529]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
Elic
Member

Откуда:
Сообщений: 29991
Версия? В >=9i - можно.
10 ноя 07, 18:34    [4900545]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
SL_75
Member

Откуда:
Сообщений: 13
В том то и дело что ругается, поэтому и спрашиваю совета есть ли конструкция удаления, которая анализ ссылочной целостности будет производить на COMMITE-е, а не сразу по каждой строке
10 ноя 07, 18:38    [4900549]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
Elic
Member

Откуда:
Сообщений: 29991
SL_75
В том то и дело что ругается
Test case в студию. И, мля, версию.
SL_75
анализ ссылочной целостности будет производить на COMMITE-е
deferred constraints
10 ноя 07, 18:41    [4900552]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
SL_75
Member

Откуда:
Сообщений: 13
Версия 9.02 ORACLE под LINUX-ом

Может есть примерчик конструкции DELETE ?

PS: с приколами типа EXECUTE IMMEDIATE 'alter table T1 disable constraint FK_ID_T1' - это все понятно, но так не хочется ...
10 ноя 07, 18:46    [4900560]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
Elic
Member

Откуда:
Сообщений: 29991
SL_75
Может есть примерчик конструкции DELETE ?
10 ноя 07, 18:49    [4900564]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
Тынц.
Guest
SL_75

...
удалить все записи из таблицы ?

Может лучше truncate ?
10 ноя 07, 18:50    [4900566]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
SL_75
Member

Откуда:
Сообщений: 13
Ты б лучше кинул решение чем ухохатывался ...

К примеру хинты ж подсказывают оптимизатору как выполнять запрос, может типа что то хинтов можно и на делите повесить ...
10 ноя 07, 18:52    [4900567]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
Далай-ламо
Member

Откуда: никого не Тибёт
Сообщений: 92
Elic
И, мля, версию.

SL_75
Версия 9.02
Бл*, даун какой-то...
10 ноя 07, 18:53    [4900571]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
Elic
Member

Откуда:
Сообщений: 29991
SL_75
К примеру хинты ж подсказывают оптимизатору как выполнять запрос, может типа что то хинтов можно и на делите повесить ...
10 ноя 07, 18:55    [4900575]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
SL_75
Member

Откуда:
Сообщений: 13
RE: Далай-ламо

Умник, я спрашиваю людей которые умеют мыслить концептуально, если ты только методом тыка, то занимайся входит и выходит в другом месте ...
10 ноя 07, 18:57    [4900578]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
Elic
Member

Откуда:
Сообщений: 29991
SL_75
я спрашиваю людей которые умеют мыслить концептуально
Отжигай дальше
10 ноя 07, 18:59    [4900586]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
SL_75
Member

Откуда:
Сообщений: 13
RE: Eric
Вопрос не в отжиге, если ты считаешь себя экспертом, то ответ "НЕТ такого сделать нельзя", это более чем достаточно
10 ноя 07, 19:02    [4900591]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
Далай-ламо
Member

Откуда: никого не Тибёт
Сообщений: 92
Жаль, сваливать пора, а тут такая развлекуха :)
10 ноя 07, 19:06    [4900595]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
SL_75
Member

Откуда:
Сообщений: 13
RE: Далай-ламо
Свой сменный хобот не забуть
10 ноя 07, 19:08    [4900599]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
Далай-ламо
Member

Откуда: никого не Тибёт
Сообщений: 92
Чувак, тебе школьный курс русского языка пройти сначала надо. Возможно, заодно и вопросы задавать научишься.
10 ноя 07, 19:13    [4900603]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
Александр Соколов
Member

Откуда: Протвино
Сообщений: 1419
Elic
SL_75
анализ ссылочной целостности будет производить на COMMITE-е
deferred constraints

Чем не устраивает такой вариант?
10 ноя 07, 19:13    [4900604]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
SL_75
Member

Откуда:
Сообщений: 13
RE: Александр Соколов
Может я туплю, подскажи плз как эту конструкцию использовать
10 ноя 07, 19:17    [4900610]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
SL_75
Member

Откуда:
Сообщений: 13
RE: Далай-ламо
Свой сменный хобот не забуДь. Лично для тебя, просто торопился писать думал убежишь
10 ноя 07, 19:18    [4900614]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
SL_75
Member

Откуда:
Сообщений: 13
RE: Александр Соколов

Т.е. Александр, меня интерсует на уровне PL\SQL кода(у меня PL\SQL блок begin ... end; и вот в нем хочу сделать удаление полное таблицы)
10 ноя 07, 19:25    [4900619]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
SL_75
Member

Откуда:
Сообщений: 13
Thanks, за советы. Все делов том что смотрел на проблему с точки зрения программиста, оперирующего данными и счатающего логическую модель БД константой, вы же видели решение с точки зрения администратора БД.
10 ноя 07, 21:36    [4900739]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все записи в таблице сожержащей дерево, без отключения FK  [new]
Советчик.
Guest
Всё дело в том, что вы документацию не читали. Поэтому уровень вопросов, мягко говоря, не очень, что и вызвало соответствующую реакцию. Вообще на форуме охотно помогают тем, кто хочет чему-нибудь научиться и прилагает для этого определённые усилия. А если спрашивающему нужно готовое решение, а не помощь в решении, то и отношение будет соответствующим.

Советовал бы для начала почитать

Concepts - обязательно
Application Developer's Guide - Fundamentals - обязательно для разработчиков (некоторые специализированные темы можно при первом прочтении пропустить)
SQL Reference куда ж без этого...
PL/SQL User's Guide and Reference ну и без этого тоже никак...

Потом по вкусу(потребностям) из этого: Oracle Database List of Books

P.S. Когда у вас просят указать версию, то при этом подразумевается точная информация ( а то 9-ки бываю разные). Лучше сразу при описании проблемы показать, что выдаёт select * from v$version.
10 ноя 07, 22:11    [4900757]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить