Команда удаления таблицы не работает в Oracle SQL разработчике, она не удаляет существующую таблицу при использовании? - PullRequest
0 голосов
/ 13 апреля 2020
drop Table countries;
drop Table regionss;

create TABLE regionss(
region_id NUMBER(3),
region_Name VARCHAR2(25),
CONSTRAINT regions_pk PRIMARY KEY(region_id)
);

create TABLE countriess(
country_id CHAR(2),
country_Name VARCHAR2(40),
region_id NUMBER(3),
CONSTRAINT countries_pk PRIMARY KEY(country_id),
CONSTRAINT regions_countries_fk FOREIGN KEY (region_id) REFERENCES regionss (region_id) 
);

Я получаю эти ошибки

Error starting at line : 4 in command -
create TABLE regionss(
region_id NUMBER(3),
region_Name VARCHAR2(25),
CONSTRAINT regions_pk PRIMARY KEY(region_id)
)
Error report -
ORA-00955: name is already used by an existing object
00955. 00000 -  "name is already used by an existing object"
*Cause:    
*Action:

Error starting at line : 10 in command -
create TABLE countriess(
country_id CHAR(2),
country_Name VARCHAR2(40),
region_id NUMBER(3),
CONSTRAINT countries_pk PRIMARY KEY(country_id)
)
Error report -
ORA-00955: name is already used by an existing object
00955. 00000 -  "name is already used by an existing object"
*Cause:    
*Action:

Разве это не функция удаления команды, чтобы удалить существующую таблицу, данную ей? Если я не изменю имена своих таблиц, это не сработает, но, опять же, после изменения имени, когда я пытаюсь запустить код во второй раз, это снова выдает мне вышеупомянутые ошибки.

1 Ответ

1 голос
/ 13 апреля 2020

Это потому, что вы отбрасываете таблицу countries и создаете таблицу countriess. Это вызывает цепочку ошибок:

  • вы не можете удалить таблицу, которая не существует (countries)
  • regionss существует, но у нее есть внешний ключ (из *) 1010 *), который предотвращает его падение.

SQL> drop Table countries;
drop Table countries
           *
ERROR at line 1:
ORA-00942: table or view does not exist


SQL> drop Table regionss;
drop Table regionss
           *
ERROR at line 1:
ORA-02449: unique/primary keys in table referenced by foreign keys
...