» »

postgreSQL pomoč

postgreSQL pomoč

business18 ::

Živjo, delam seminarsko za baze, sem prekopirala iz programa toad data modeler (E-R diagram), da lahko začenjam pisati SQL stavke v postgreSQL manager in mi ni jasno zakaj mi stalno ven meče error: "ERROR: there is no unique constraint matching given keys for referenced table "Film"."

Sem pregledala in se mi zdi da je vse prav narejeno, tukaj je slika E-R diagrama:

MrStein ::

Raje svoje SQL stavke napiši, vsaj tistega, ki vrže napako.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

business18 ::

mora biti obvezno preko tega programa tja kopirano, če bi želela samo ta stavek sama napisat lahko pišem kar sem ?

McAjvar ::

Če imaš stolpce "id_[nekaj]" samo tipa integer, ne bo zadosti. Baza se ti pritožuje, da na teh stolpcih nimaš unique constrainta. Se pravi nimaš omejitve, ki zahteva, da ne smeta obstajati dva zapisa v tabeli z enako vrednostjo v tem stolpcu.

Za začetek jih spremeni v tip serial (vrednosti v ta polja ti ni treba ročno vpisovati, za to bo poskrbela baza sama in pri vnosu lahko ta polja ignoriraš. Vrednosti bodo tipa integer, od 1 dalje: 1, 2, 3, ...). Drugi korak je, da ti pri (vseh?) tabelah manjka primarni ključ (ali pa zgolj unique constraint, ki pa ga primarni ključ implicira) na id_... stolpcih. Na primer:
CREATE TABLE "Film" (
  "id_filma" serial NOT NULL,
  "Naslov" character varying(250),
  "Dolzina" integer,
  "Ocena" integer,
  "id_drzave" integer NOT NULL,
  CONSTRAINT "pkey_Film" PRIMARY KEY ("id_filma")
);

Nato boš lahko brez problemov v drugi tabeli dodala tuji ključ, ki se bo skliceval na stolpec id_filma.
"[...] the advance of civilization is nothing
but an exercise in the limiting of privacy."
- Isaac Asimov

business18 ::

hvala mi je uspelo sedaj! :) se opravičujem za pozen odgovor, ampak nisem prej uspela . Sedaj mi za vsako ko odprem katero tabelo napiše tole:




+ se opravičujem za tok vprašanj :D ampak prvič uporabljam tale program...

MrStein ::

MrStein je izjavil:

Raje svoje SQL stavke napiši, vsaj tistega, ki vrže napako.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

business18 ::

nisem nič pisala, baza je ok sedaj. Potem pa karkoli ko kliknem je tale error tudi ko zaženem vse skupaj :8)

business18 ::

Živjo,

mi lahko kdo pomaga kako se napiše insert stavek za tole samo kjer vsebuje datum...sem probala npr. 19-12-2013 ampak ni ok.

Zgodovina sprememb…

roba87 ::

probaj '2013-12-19'

MrStein ::

date '2013-12-19'

Torej:
INSERT INTO clan_medij (datum_vrnitve, ostali stolpci...) values (date '2013-12-19', ostale vrednosti)
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Zgodovina sprememb…

  • spremenil: MrStein ()

business18 ::

Živjo, zna kdo naredit poizvedbo v poizvedbi, nujno bi potrebovala pomoč!? :)

klemenSLO ::

Opiši problem :)
Life is not measured in minutes, but in MOMENTS...

business18 ::

Narediti moram poizvedbo v poizvedbi pa ne vem točno kakšna je že... je tole pravi primer?:
SELECT DATE(mq.mdate),
COUNT(DISTINCT mq.player_name)
FROM ( SELECT MIN(pp.date) as mdate, pp.player_name
FROM player_playtime AS pp
GROUP BY pp.player_name ) AS mq
GROUP BY DATE(mq.date)
DESC LIMIT 60

klemenSLO ::

na prvi uč zgleda ok. Pač
( SELECT MIN(pp.date) as mdate, pp.player_name 
FROM player_playtime AS pp 
GROUP BY pp.player_name ) AS mq 
je vgnezden stavek
Life is not measured in minutes, but in MOMENTS...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

PostgreSQL pomoč

Oddelek: Programiranje
162523 (2016) Mato989
»

SQL pomoč

Oddelek: Programiranje
132412 (1826) miko22
»

mysql poizvedba

Oddelek: Izdelava spletišč
7837 (656) sebavet
»

[SQL] Unikatni izpisi

Oddelek: Programiranje
212236 (1623) 111111111111
»

[SQL] - združitev glede na iste vrednosti

Oddelek: Programiranje
131414 (1056) tx-z

Več podobnih tem