Witam, stworzyłem następującą bazę danych
DROP TABLE klu_sta;
DROP TABLE Stadiony;
DROP TABLE Trenerzy;
DROP TABLE klu_spo;
DROP TABLE Sponsorzy;
DROP TABLE klu_pil;
DROP TABLE Pilkarze;
DROP TABLE Kluby;
DROP TABLE Liga;
DROP SEQUENCE sta;
DROP SEQUENCE tre;
DROP SEQUENCE spo;
DROP SEQUENCE pil;
DROP SEQUENCE klu;
DROP SEQUENCE lig;
------------------------------------CREATE--------------------------------------
CREATE TABLE Liga(
Id_ligi NUMBER CONSTRAINT liga_pk PRIMARY KEY,
Kraj VARCHAR(30) NOT NULL,
Nazwa_ligi VARCHAR(20) NOT NULL
);
CREATE TABLE Kluby(
Id_klubu NUMBER CONSTRAINT klub_pk PRIMARY KEY,
Nazwa_klubu VARCHAR(30) NOT NULL,
Id_ligi NUMBER NOT NULL,
CONSTRAINT kl_li_fk FOREIGN KEY (Id_ligi) REFERENCES Liga(Id_ligi)
);
CREATE TABLE Pilkarze(
Id_pilkarza NUMBER CONSTRAINT pilkarz PRIMARY KEY,
Imie_pilkarza VARCHAR(15) NOT NULL,
Nazwisko_pilkarza VARCHAR(20),
Pozycja VARCHAR(3) NOT NULL
);
CREATE TABLE klu_pil(
Id_klubu NUMBER CONSTRAINT klub_fk REFERENCES Kluby(Id_klubu),
Id_pilkarza NUMBER CONSTRAINT pilkarz_fk REFERENCES Pilkarze(Id_pilkarza),
CONSTRAINT klu_pil_pk PRIMARY KEY (Id_klubu, Id_pilkarza)
);
CREATE TABLE Sponsorzy(
Id_sponsora NUMBER CONSTRAINT sponsor_pk PRIMARY KEY,
Nazwa_sponsora VARCHAR(35) NOT NULL
);
CREATE TABLE klu_spo(
Id_klubu NUMBER CONSTRAINT klub_spo_fk REFERENCES Kluby(Id_klubu),
Id_sponsora NUMBER CONSTRAINT sponsor_fk REFERENCES Sponsorzy(Id_sponsora),
CONSTRAINT klu_spo_pk PRIMARY KEY(Id_klubu,Id_sponsora)
);
CREATE TABLE Trenerzy(
Id_klubu NUMBER CONSTRAINT tren_pk PRIMARY KEY,
Imie_trenera VARCHAR(20) NOT NULL,
Nazwisko_trenera VARCHAR(20) NOT NULL,
Wiek_trenera NUMBER NOT NULL
);
CREATE TABLE Stadiony(
Id_stadionu NUMBER NOT NULL constraint stadion_pk PRIMARY KEY,
Nazwa_stadionu VARCHAR(20),
Ulica VARCHAR(20),
Adres VARCHAR(7)
);
CREATE TABLE klu_sta(
Id_klubu NUMBER CONSTRAINT klu_sta_fk REFERENCES Kluby(Id_klubu),
Id_stadionu NUMBER CONSTRAINT stadion_fk REFERENCES Stadiony(id_stadionu),
CONSTRAINT klu_sta_pk PRIMARY KEY(Id_klubu, Id_stadionu)
);
-------------------------------SEQUENCE-----------------------------------------
CREATE SEQUENCE lig
START WITH 1
INCREMENT BY 1;
CREATE SEQUENCE klu
START WITH 1
INCREMENT BY 1;
CREATE SEQUENCE pil
START WITH 1
INCREMENT BY 1;
CREATE SEQUENCE spo
START WITH 1
INCREMENT BY 1;
CREATE SEQUENCE tre
START WITH 1
INCREMENT BY 1;
CREATE SEQUENCE sta
START WITH 1
INCREMENT BY 1;
--------------------------------DELETE------------------------------------------
DELETE FROM klu_sta;
DELETE FROM Stadiony;
DELETE FROM Trenerzy;
DELETE FROM klu_spo;
DELETE FROM Sponsorzy;
DELETE FROM klu_pil;
DELETE FROM Pilkarze;
DELETE FROM Kluby;
DELETE FROM Liga;
--------------------------------INSERT------------------------------------------
------------LIGA---------------
INSERT INTO Liga VALUES(lig.NEXTVAL,'Anglia','Premier League');
INSERT INTO Liga VALUES(lig.NEXTVAL,'Francja','Ligue 1');
INSERT INTO Liga VALUES(lig.NEXTVAL,'Niemcy','Bundesliga');
INSERT INTO Liga VALUES(lig.NEXTVAL,'Polska','Ekstraklasa');
INSERT INTO Liga VALUES(lig.NEXTVAL,'Portugalia','Superliga');
INSERT INTO Liga VALUES(lig.NEXTVAL,'Hiszpania','La Liga');
------------KLUBY---------------
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Arsenal',1);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Aston Villa',1);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Burnley',1);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Chelsea',1);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Crystal Palace',1);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Bastia',2);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Bordeaux',2);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Caen',2);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Evian',2);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Augsburg',3);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Bayer Leverkusen',3);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Bayern',3);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Borussia Dortmund',3);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Eintracht Frankfurt',3);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Jagiellonia Białystok',4);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Korona Kielce',4);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Lech Poznań',4);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Lechia Gdańsk',4);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Académica',5);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Arouca',5);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Belenenses',5);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Benfica',5);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Boavista',5);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Braga',5);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'UD Almería',6);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Athletic Club',6);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Club Atlético',6);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'FC Barcelona',6);
INSERT INTO Kluby VALUES(klu.NEXTVAL,'Real Club Celta',6);
------------PILKARZE------------------------------------------------------------
--Arsenal
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Wojciech','Szczęsny','BR');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Mathieu', 'Debuchy','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Kieran', 'Gibbs','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Per', 'Mertesacker','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Laurent','Koscielny','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Tomáš','Rosický','PO');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Mikel','Arteta','PO');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Jack','Wilshere','PO');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Mesut','Özil','PO');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Olivier','Giroud','NA');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'David','Ospina','BR');
--Aston Villa
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Brad','Guzan','BR');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Nathan','Baker','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Jores','Okore', 'NA');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Ciaran','Clark','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Leandro','Bacuna','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Tom','Cleverley','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Andreas', 'Weimann','NA');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Joe', 'Cole','PO');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Brad','Guzan','PO');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Philippe' ,'Senderos','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Brad','Guzan','BR');
--Burnley
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Tom','Heaton','BR');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Kieran','Trippier','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Daniel','Lafferty','NA');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Michael','Duff','PO');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Jason','Shackell','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Ben','Mee','OB');
--Chelsea
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Petr', 'Čech','BR');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Branislav','Ivanović','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Cesc','Fabregas','PO');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Didier','Drogba','NA');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Thibaut','Courtois','BR');
--Crystal Palace
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Julián','Speroni','BR');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Joel','Ward','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'JYannick','Bolasie','PO');
--Bastia
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Alphonse','Aréola','BR');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Romain','Achilli','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Hervin','Ongenda ','NA');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Florian','Marange','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Sébastien','Squillaci','OB');
--Bordeaux
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Ažbej','Jug','BR');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Diego','Contento','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Nicolas','Pallois','OB');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Urugwaj','Diego Rolán','NA');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Henri','Saivet','NA');
INSERT INTO Pilkarze VALUES(pil.NEXTVAL,'Younes','Kaabouni','PO');
------------klu_pil-------------------------------------------------------------
INSERT INTO klu_pil VALUES(1,2);
INSERT INTO klu_pil VALUES(2,2);
INSERT INTO klu_pil VALUES(2,1);
------------SPONSORZY-----------------------------------------------------------
INSERT INTO Sponsorzy VALUES(1,'Nike');
INSERT INTO Sponsorzy VALUES(2,'Adidas');
------------klu_spo-------------------------------------------------------------
INSERT INTO klu_spo VALUES(1,2);
INSERT INTO klu_spo VALUES(2,2);
INSERT INTO klu_spo VALUES(1,1);
INSERT INTO klu_spo VALUES(1,2);
INSERT INTO klu_spo VALUES(2,1);
------------TRENERZY------------------------------------------------------------
INSERT INTO Trenerzy VALUES(tre.NEXTVAL,'Arse`ne','Wenger',66);
INSERT INTO Trenerzy VALUES(tre.nextval,'Paul','Lambert',46);
INSERT INTO Trenerzy VALUES(tre.nextval,'Sean','Dyche',44);
INSERT INTO Trenerzy VALUES(tre.nextval,'José','Mourinho',62);
INSERT INTO Trenerzy VALUES(tre.nextval,'Alan','Pardew',64);
INSERT INTO Trenerzy VALUES(tre.nextval,'Roberto','Martinez',42);
------------STADIONY------------------------------------------------------------
INSERT INTO Stadiony VALUES(sta.NEXTVAL,'Stamford Bridge','Fullham Road','SW6 1HS');
INSERT INTO Stadiony VALUES(sta.NEXTVAL,'Goodison Park','Goodison Road','L4 4EL');
------------klu_sta-------------------------------------------------------------
INSERT INTO klu_sta VALUES(4,1);
INSERT INTO klu_sta VALUES(6,2);
SELECT Kraj,Nazwa_klubu FROM Liga, Kluby WHERE Liga.Id_ligi = Kluby.Id_ligi AND Id_ligi =1;
Create działa bez zarzutu(o ile dobrze go napisałem, prosiłbym o ew. sugestie, korektę).
Przy Insert problem pojawia się w lini 142- INSERT INTO klu_spo VALUES(1,2); ORA-00001: unique constraint (SYSTEM.KLU_SPO_PK) violated oraz przy próbnym select ORA-00918: column ambiguously defined
Za drugim razem przy próbie wywołania Insert pojawia się już znacznie więcej błędów 25-63,128-130,139-143,158-159. Problem jest taki sam wszędzie:ORA-02291: integrity constraint (SYSTEM.STADION_FK) violated - parent key not found.
Za każdym razem muszę usuwać i tworzyć tabelę od nowa, a potem insertować. Szukałem tych błędów na necie, ale nie mogłem nic znaleźć w miarę jasno wyjaśnionego(tak, abym potrafił zrozumieć i poprawić te błędy). Prosiłbym o pomoc co jest nie tak.