Zidar Canada
Član broj: 15387 Poruke: 3085 *.eqao.com.
|
Ne CHECK nego FOREIGN KEY
Ovako nekako - svaki predpostavljeni mora biti pre svega radnik - :
CREATE TABLE [zRadnici] (
[RadnikID] [int] NOT NULL ,
[Ime] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AI NOT NULL ,
[Prezime] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AI NOT NULL ,
[Pretpostavljeni] [int] NOT NULL ,
CONSTRAINT [PK_zRadnici] PRIMARY KEY CLUSTERED
(
[RadnikID]
) ON [PRIMARY] ,
CONSTRAINT [FK_zRadnici_zRadnici] FOREIGN KEY
(
[Pretpostavljeni]
) REFERENCES [zRadnici] (
[RadnikID]
)
) ON [PRIMARY]
GO
--- onda sam uneo nekoliko redova:
SELECT * FROM zRadnici
RadnikID Ime Prezime Pretpostavljeni
----------- ---------- ---------- ---------------
1 Laza Lazic 1
2 Pera Peric 1
3 Mika Mikic 1
4 Goran Goranovic 2
5 Milos ilosevic 2
6 Voja Vojic 3
(6 row(s) affected)
--- Ovo ce da radi, novom radniku Peri Petrovicu bice pretpostavljeni Goran Goranovic:
INSERT INTO zRadnici
(RadnikID , Ime , Prezime, Pretpostavljeni )
VALUES (7,'Petar','Petrovic',4)
--
(1 row(s) affected)
--- Ovo nece da radi, jer ne postoji radnik sa id=19 koji bi bio Mihajlu pretpostavljeni:
INSERT INTO zRadnici
(RadnikID , Ime , Prezime, Pretpostavljeni )
VALUES (8,'Mihajlo','Mihajlovic',19)
-- poruka o gresci:
Server: Msg 547, Level 16, State 1, Line 1
INSERT statement conflicted with COLUMN FOREIGN KEY SAME TABLE constraint 'FK_zRadnici_zRadnici'. The conflict occurred in database 'Woof', table 'zRadnici', column 'RadnikID'.
The statement has been terminated.
|