ďťż
 
[pgsql] Klucz glowny bedacy referencja??? ďťż
 
[pgsql] Klucz glowny bedacy referencja???
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[pgsql] Klucz glowny bedacy referencja???



Jan Mazur - 08-09-2006 01:56
[pgsql] Klucz glowny bedacy referencja???
  Witam,
Mam nastepujace pytanie czy istnieje mozliwosc zrobienia czegos takiego
zeby pole tabeli bedace jednoczesnie referencja bylo kluczem glownym
tabeli? W chwili obecnej zrobilem cos takiego:

CREATE TABLE Osoba (
idOsoba SERIAL NOT NULL,
...
);

CREATE TABLE Personel (
idPersonel INTEGER
REFERENCES Osoba (idOsoba)
ON DELETE CASCADE
ON UPDATE CASCADE,
...
PRIMARY KEY(idPersonel)
);

Jednak nie przynosi to oczekiwanego rezultatu (baza zachwouje sie jakby
referencja nie istniala - usuniecie rekordu z Osoba nie powoduje
usunecia rekordu powiazanego z Personel).

Moze ktos wie co jest nie tak???

Pozdrawiam, Jan





Paweł Matejski - 08-09-2006 01:56

  Jan Mazur wrote:
> Witam,
> Mam nastepujace pytanie czy istnieje mozliwosc zrobienia czegos takiego
> zeby pole tabeli bedace jednoczesnie referencja bylo kluczem glownym
> tabeli? W chwili obecnej zrobilem cos takiego:
>
> CREATE TABLE Osoba (
> idOsoba SERIAL NOT NULL,
> ...
> );
>
> CREATE TABLE Personel (
> idPersonel INTEGER
> REFERENCES Osoba (idOsoba)
> ON DELETE CASCADE
> ON UPDATE CASCADE,
> ...
> PRIMARY KEY(idPersonel)
> );
>
> Jednak nie przynosi to oczekiwanego rezultatu (baza zachwouje sie jakby
> referencja nie istniala - usuniecie rekordu z Osoba nie powoduje
> usunecia rekordu powiazanego z Personel).
>
> Moze ktos wie co jest nie tak???

Pewnie coś źle robisz.
--
P.M.




Adam Buraczewski - 08-09-2006 01:56

  Jan Mazur <mazu@o2.pl_nospam> wrote:
> Mam nastepujace pytanie czy istnieje mozliwosc zrobienia czegos takiego
> zeby pole tabeli bedace jednoczesnie referencja bylo kluczem glownym
> tabeli? W chwili obecnej zrobilem cos takiego:

Jak najbardziej tak możesz zrobić.

> CREATE TABLE Osoba (
> idOsoba SERIAL NOT NULL,
> ...
> );
>
> CREATE TABLE Personel (
> idPersonel INTEGER
> REFERENCES Osoba (idOsoba)
> ON DELETE CASCADE
> ON UPDATE CASCADE,
> ...
> PRIMARY KEY(idPersonel)
> );
>
> Jednak nie przynosi to oczekiwanego rezultatu (baza zachwouje sie jakby
> referencja nie istniala - usuniecie rekordu z Osoba nie powoduje
> usunecia rekordu powiazanego z Personel).

U mnie działa. Właściwie niemożliwe, żeby nie działało, ale pod
warunkiem że zrobiłeś wszystko popranie. Mógłbyś podać jakiś
konkretny przykład, bo w powyższym dużo brakuje (np. idOsoba musi byc
PRIMARY KEY albo przynajmniej UNIQUE, inaczej Postgres nawet nie
stworzy takiego powiązania).

Pozdrawiam!

--
Adam Buraczewski <adamb (at) nor (dot) pl> * Linux user #165585
GCS/TW d- s-:+>+:- a C+++(++++) UL++++$ P++ L++++ E++ W+ N++ o? K w--
O M- V- PS+ !PE Y PGP+ t+ 5 X+ R tv- b+ DI D G++ e+++>++++ h r+>++ y?




Jan Mazur - 08-09-2006 01:56

  Adam Buraczewski napisał(a):

> U mnie działa. Właściwie niemożliwe, żeby nie działało, ale pod
> warunkiem że zrobiłeś wszystko popranie. Mógłbyś podać jakiś
> konkretny przykład, bo w powyższym dużo brakuje (np. idOsoba musi byc
> PRIMARY KEY albo przynajmniej UNIQUE, inaczej Postgres nawet nie
> stworzy takiego powiązania).

Skasowalem wszystkie tabele i stworzylem jeszcze raz teraz wszystko
dziala. Przepraszam za falszwy alarm :)

Pozdrawiam, Jan
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    =?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?= [pgsql] Akcja w =?iso-8859-2?b?emFsZb9ub7ZjaQ==?= od liczby zmienionych =?iso-8859-1?q?rekord=F3w?= [sql][pgsql] zapytanie sql [pgsql] Wykonanie triggera po =?ISO-8859-2?Q?zako=F1czeniu_tra?==?ISO-8859-2?Q?nsakcji?= [pgsql] =?ISO-8859-2?Q?Prawid=B3owe_post=EApowanie_w_przyp?==?ISO-8859-2?Q?adku_awarii?= [PGSQL] Funkcje =?ISO-8859-2?Q?zwracaj=B1ce_=27rowset=27_i_?==?ISO-8859-2?Q?tabele_tymczasowe?= [pgsql] 7.4 =?ISO-8859-2?Q?og=B3upia=B3_przy_zak=B3adaniu_?==?ISO-8859-2?Q?indeksu?= [pgsql] Zmiana schematu do =?ISO-8859-2?Q?kt=F3rego_nalezy_o?==?ISO-8859-2?Q?biekt=2E?= Która z baz: [PGSQL] czy [MySQL] będzie lepsza w takim zastosowaniu (masowe UPDATE) PL/pgSQL jak =?ISO-8859-2?Q?u=BFy=E6_transakcji=2E?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • red-hacjenda.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com