Tabela lub perspektywa nie istnieje - Oracle

Odpowiedz Nowy wątek
2014-04-06 12:23
0

Witam,
Dostaję taki błąd Tabela lub perspektywa nie istnieje. Rozumiem, że dostaję go, ponieważ nie stworzyłem danej tabeli jeszcze, ale jak mam ją stworzyć skoro ona też zawiera referencje to jeszcze innej tabeli, której też nie ma i tak się koło zatacza.

Dla rozjaśnienia diagram:

<image>Diagram</image>![DiagramUML.PNG](//static.4programmers.net/uploa[...]t/184200930453412a4ce5390.png) Mam problem ze stworzeniem tabeli wypożyczenia i tabel łączących. ```sql --TABELA ŁĄCZĄCA PRACOWNIKOW I WYPOZYCZENIA --LACZACA_P_W DROP TABLE LACZACA_P_W CASCADE CONSTRAINTS; CREATE TABLE LACZACA_P_W( ID INTEGER NOT NULL, ID_NR_DOWODU_PRACOWNIKA VARCHAR2(9) NOT NULL, ID_WYPOZYCZENIA INTEGER NOT NULL, ID_NR_DOWODU_PRACOWNIKA_ODB VARCHAR2(9), PRIMARY KEY (ID), FOREIGN KEY (ID_NR_DOWODU_PRACOWNIKA) REFERENCES PRACOWNICY(ID_NR_DOWODU_PRACOWNIKA), FOREIGN KEY (ID_WYPOZYCZENIA) REFERENCES WYPOZYCZENIA(ID_WYPOZYCZENIA), FOREIGN KEY (ID_NR_DOWODU_PRACOWNIKA_ODB) REFERENCES PRACOWNICY(ID_NR_DOWODU_PRACOWNIKA) ); --WYPOZYCZENIA DROP TABLE WYPOZYCZENIA CASCADE CONSTRAINTS; CREATE TABLE WYPOZYCZENIA( ID_WYPOZYCZENIA INTEGER NOT NULL, ID_NR_DOWODU_KLIENTA VARCHAR2(9) NOT NULL, ID_NR_REJESTRACYJNY VARCHAR2(10) NOT NULL, ID_NR_DOWODU_PRACOWNIKA VARCHAR2(9) NOT NULL, DATA_WYPOZYCZENIA DATE NOT NULL, DATA_ZWROTU DATE NOT NULL, ID_MIEJSCA_WYP INTEGER NOT NULL, ID_MIEJSCA_ODD INTEGER NOT NULL, PRIMARY KEY (ID_WYPOZYCZENIA), FOREIGN KEY (ID_NR_DOWODU_KLIENTA) REFERENCES KLIENCI(ID_NR_DOWODU_KLIENTA), FOREIGN KEY (ID_NR_REJESTRACYJNY) REFERENCES LACZACA_W_S(ID_NR_REJESTRACYJNY), FOREIGN KEY (ID_NR_DOWODU_PRACOWNIKA) REFERENCES LACZACA_P_W(ID_NR_DOWODU_PRACOWNIKA), FOREIGN KEY (ID_MIEJSCA_WYP) REFERENCES MIEJSCA(ID_MIEJSCA), FOREIGN KEY (ID_MIEJSCA_ODD) REFERENCES MIEJSCA(ID_MIEJSCA) ); --TABELA ŁĄCZĄCA WYPOZYCZENIA I SAMOCHODY --LACZACA_W_S DROP TABLE LACZACA_W_S CASCADE CONSTRAINTS; CREATE TABLE LACZACA_W_S( ID INTEGER NOT NULL, ID_WYPOZYCZENIA INTEGER NOT NULL, ID_NR_REJESTRACYJNY VARCHAR2(10) NOT NULL, PRIMARY KEY (ID), FOREIGN KEY (ID_WYPOZYCZENIA) REFERENCES WYPOZYCZENIA(ID_WYPOZYCZENIA), FOREIGN KEY (ID_NR_REJESTRACYJNY) REFERENCES SAMOCHODY(ID_NR_REJESTRACYJNY) ); ``` Jak to zrobić? Czy można stworzyć najpierw tabelę bez referencji, a później je jakoś dodać? Jeśli tak, to jak to się robi?

Pozostało 580 znaków

2014-04-06 15:07

Tak jak napisałeś. Możesz najpierw stworzyć tabele, a potem osobno klucze.

ALTER TABLE table_name
ADD CONSTRAINT constraint_name
   FOREIGN KEY (column1, column2, ... column_n)
   REFERENCES parent_table (column1, column2, ... column_n);

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0