1

Temat: ERROR: relation "rozgrywki" does not exist

Sieama zaczynam projektować w pg i mam problemik bo nie rozumiem do końca zasad na jakich działają klucze obce ale co będę pisał wklejam kod:

CREATE TYPE POZIOM AS ENUM ('PIERWSZA','DRUGA','REPREZENTACJA');
CREATE TYPE TYP_ROZGR AS ENUM ('LIGOWE','PUCHAROWE');
CREATE TYPE FAZA AS ENUM ('GRUPOWA','PUCHAROWA');
CREATE TYPE STATUS AS ENUM ('WYGRANY','PRZEGRANY','AKTYWNY');
CREATE TYPE TYP_KURSU AS ENUM ('ZWYCIESTWO_H', 'ZWYCIESTWO_A', 'REMIS', 'ZWYCIESTWO_H_1P', 'ZWYCIESTWO_A_1P', 'REMIS_1P', 'IL_GOLI<+2,5>', 'IL_GOLI<-2,5>', 'STRZ_GOLA_H', 'STRZ_GOLA_A');

CREATE TABLE "ROZGRYWKI" (
    NAZWA_ROZGR VARCHAR (40) PRIMARY KEY,
    RODZAJ_ROZGR TYP_ROZGR NOT NULL,
    FAZA_ROZGR FAZA NOT NULL,
    POZIOM_ROZGR POZIOM NOT NULL
);

CREATE TABLE "KLUB" ( 
    ID_ZESP SERIAL PRIMARY KEY,
    NAZWA VARCHAR(30) UNIQUE NOT NULL,
    KRAJ VARCHAR(30) NOT NULL,
    MIASTO VARCHAR(30) NOT NULL,
    ROZGRYWKI VARCHAR (40),
    FOREIGN KEY (ROZGRYWKI) REFERENCES ROZGRYWKI (NAZWA_ROZGR) ON DELETE CASCADE ON UPDATE CASCADE
);

CREATE TABLE "MECZ" (
    ID_MECZU SERIAL PRIMARY KEY,
    ID_ZESP_H SERIAL,
    ID_ZESP_A SERIAL,
    ROZGRYWKI VARCHAR(40),
    DATA DATE,
    IL_GOLI_H_1P TINYINT DEFAULT(0),
    IL_GOLI_A_1P TINYINT DEFAULT(0),
    IL_GOLI_H TINYINT DEFAULT (IL_GOLI_H_1P),
    IL_GOLI_A TINYINT DEFAULT (IL_GOLI_A_1P),
    FOREIGN KEY (ROZGRYWKI) REFERENCES ROZGRYWKI (NAZWA_ROZGR) ON DELETE CASCADE ON UPDATE CASCADE
);

CREATE TABLE "KURSY" (
    ID_MECZU SERIAL PRIMARY KEY,
    RODZAJ_KURSU TYP_KURSU NOT NULL,
    WYSOKOSC_KURSU REAL NOT NULL CHECK (WYSOKOSC_KURSU > 1.00),
    FOREIGN KEY (ID_MECZU) REFERENCES MECZ (ID_MECZU) ON DELETE CASCADE ON UPDATE CASCADE
);

CREATE TABLE "KUPON" (
    ID_KUPONU SERIAL PRIMARY KEY,
    ID_KURSU SERIAL,
    AKO REAL NOT NULL CHECK (AKO > 1.00),
    STAWKA INT NOT NULL CHECK (STAWKA > 1),
    EW_WYGRANA REAL NOT NULL,
    STATUS_KUPONU STATUS NOT NULL DEFAULT ('AKTYWNY'),
    FOREING KEY (ID_KURSU) REFERENCES KURSY (ID_MECZU) ON DELETE CASCADE ON UPDATE CASCADE
);

Wyskakuje mi pg admin taki błąd:
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "ROZGRYWKI_pkey" for table "ROZGRYWKI"NOTICE:  CREATE TABLE will create implicit sequence "KLUB_id_zesp_seq" for serial column "KLUB.id_zesp"NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "KLUB_pkey" for table "KLUB"
NOTICE:  CREATE TABLE / UNIQUE will create implicit index "KLUB_nazwa_key" for table "KLUB"
ERROR:  relation "rozgrywki" does not exist


********** Błąd **********

ERROR: relation "rozgrywki" does not exist
Stan SQL:42P01
Jak ktoś może mi pomóc to bym rad wielce był.
Pozdrawiam Sakala

2

Odp: ERROR: relation "rozgrywki" does not exist

Nie używaj cudzysłowia w nazwach tabel, jeżeli już to zrobisz wielkość liter będzie miała znaczenie

i tak "ROZRYWKI" to już nie to samo co "rozrywki"

Niektóre edytory np EMS automatycznie dodają czydzysłowia do tabel i nazw funkcji, dlatego najlepszym rozwiązaniem jest uzywanie małych liter