Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Теоретические аспекты и практические реализации создания, внедрения и использования баз данных, СУБД, хранилищ.
  • Страница:
  • 1

ТЕМА: ошибка при DROP TABLE в Oracle

ошибка при DROP TABLE в Oracle 20 июль 2011 03:33 #2531

  • vetal
  • vetal аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 49
  • Спасибо получено: 0
есть три таблицы A B С, таблицы B и C ссылаются на А!
При DROP TABLE А происходит ошибка
ORA-02449: уникальный/первичный ключ в таблице, на которую ссылаются по внешнему ключу
хотя все сонстраинты(ограничения,вторичные, уникальные ключи) и первичные ключи переведены в DISABLE, плюс все таблицы пустые.
В чем причина ошибки?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: ошибка при DROP TABLE в Oracle 20 июль 2011 03:35 #2532

Приыет.

drop table A cascade constraints

Только смотри тут нюанс какой... Тут только удалятся С и В(насколько я помню)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: ошибка при DROP TABLE в Oracle 20 июль 2011 03:45 #2533

DROP TABLE a CASCADE CONSTRAINTS;
Specify CASCADE CONSTRAINTS to drop all referential integrity constraints that

refer to primary and unique keys in the dropped table. If you omit this clause, and

such referential integrity constraints exist, Oracle returns an error and does not drop

the table.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: ошибка при DROP TABLE в Oracle 20 июль 2011 03:46 #2534

  • vetal
  • vetal аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 49
  • Спасибо получено: 0
дело в том, что в этой таблице А нужно переименовать некоторые поля, для этого и нужно ее сперва удалить и потом создать по новой и все как бы должно остаться как было (только поля переименоваться) все связи должны остаться, а
DROP TABLE А CASCADE CONSTRAINTS удалит все ссылки, т.е. придеться потом по новой создавать?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: ошибка при DROP TABLE в Oracle 20 июль 2011 04:05 #2535

Ну к сожалению придется пересоздать...
Впредь нужно быть внимательным при проектировании ;)

Можно по-другому. Дропаешь столбец, потом занаво его создаёшь с правильным именем и заливаешь данными.
А если у тебя неправильный столбец является ключом, то в любом случае все ссылки придётся пересоздавать. Так что в этом случае лучше через DROP CASCADE

ALTER TABLE "WORK"."TEST_WORK"
DROP ("ID_USER") CASCADE CONSTRAINTS

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1