W celu utworzenia tabeli z kluczem obcym nazwanej np. TABELA_FK odnoszącej się w kolumnie KURS_ID do kolumny ID z tabeli TABELA musimy odpowiednio skonstruować CONSTRAINT z kluczem obcym FK_P1:
CREATE TABLE TABELA_FK
(
ID INTEGER NOT NULL,
NAME VARCHAR2(20) NOT NULL,
KURS_ID INTEGER NOT NULL,
CONSTRAINT FK_P1 FOREIGN KEY (KURS_ID) REFERENCES TABELA(ID),
CONSTRAINT TABELA_FK2 PRIMARY KEY (ID)
);
Jeśli chcemy by usuwając dane z tabeli TABELA usuwały się one także w powiązanej TABELA_FK konstrukcja musiałaby zawierać komendę ON DELETE CASCADE
CREATE TABLE TABELA_FK
(
ID INTEGER NOT NULL,
NAME VARCHAR2(20) NOT NULL,
KURS_ID INTEGER NOT NULL,
CONSTRAINT FK_KURS FOREIGN KEY (KURS_ID) REFERENCES TABELA(ID) ON DELETE CASCADE,
CONSTRAINT TABELA_KURS_FK2 PRIMARY KEY (ID)
);
Z kolei jeśli w przypadku usuwania danych z tabeli TABELA chcielbyśmy by w TABELI_FK w miejscu powiązanych kolumn pojawiały się null konstrukcja tabeli wyglądałaby tak
CREATE TABLE TABELA_FK
(
ID INTEGER NOT NULL,
NAME VARCHAR2(20) NOT NULL,
KURS_ID INTEGER,
CONSTRAINT FK_KURS FOREIGN KEY (KURS_ID) REFERENCES TABELA(ID) ON DELETE SET NULL,
CONSTRAINT TABELA_KURS_FK2 PRIMARY KEY (ID)
);
A jeśli miałaby w przypadku usunięcia danych z tabeli TABELA być ustawiana dla powiązanego wiersza w tabeli TABELA_FK wartośc domyślna tak
CREATE TABLE TABELA_FK
(
ID INTEGER NOT NULL,
NAME VARCHAR2(20) NOT NULL,
KURS_ID INTEGER DEFAULT '999' NOT NULL,
CONSTRAINT FK_KURS FOREIGN KEY (KURS_ID) REFERENCES TABELA(ID) ON DELETE SET DEFAULT,
CONSTRAINT TABELA_KURS_FK2 PRIMARY KEY (ID)
);