nieraczek
27.03.2007, 13:19:33
Kolumna bedaca kluczem podstawowym jest domyślnie NOT NULL, a czy kolumna będąca kluczem obcym też jest domyślnie NOT NULL
Tak, na kluczu obcym również musi być NOT NULL. Zasady dotyczące tworzenia klucza obcego są bardzo zbliżone do zasad klucza podstawowego.
wijet
27.03.2007, 13:36:44
Nie napisales o jaka baze Ci chodzi, w Oraclu ustawienie na kolumnie klucza obcego nie wymusza warunku NOT NULL, nalezy go utworzyc "recznie".
@mhs: mylisz się, przecież można ustawić nawet w references ON DELETE SET NULL
Nie jest wymuszona bo może mieć wartość NULL więc byłoby to bezsensu.
nieraczek
27.03.2007, 13:45:12
no właśnie chodzi mi o Oracle, jesteś pewien że w Oracle klucz obcy NIE JEST domyślnie NOT NULL ? Np.
CREATE TABLE PLYTY
(
ID_PLYTY NUMBER(6) CONSTRAINT OGRAN1 PRIMARY KEY,
NAZWA VARCHAR2(50) CONSTRAINT OGRAN2 NOT NULL,
ID_GATUNKU NUMBER(6) REFERENCES GATUNKI(ID_GATUNKU) <- wiec klucz obcy jest domyslnie NULL ?
);
@nieraczek: bez urazy, ale dostałeś już odpowiedź, a poza tym wystarczy sprawdzić :///
wijet
27.03.2007, 14:05:39
Tak w oraclu klucz obcy nie jest domyslnie NOT NULL, tylko ty robisz references to GATUNKI.ID_GATUNKU
ktory prawdopodobnie jest PRIMARY KEY czyli nie pozwala ci wstatic NULL'a, aby mozna bylo wstawic NULL'a w PLYTY.ID_GATUNKU to pole GATUNKI.ID_GATUNKU musialo by byc UNIQUE.
nieraczek
27.03.2007, 14:26:35
aha dzieki za odpowiedzi
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.