【转】on delete cascade

关系表的级联更新: on update cascade

on delete cascade 是级联删除的意思

意思是 当你更新或删除主键表时,那么外键表也会跟随一起更新或删除

CREATE TABLE Countries(CountryId INT PRIMARY KEY)
INSERT INTO Countries (CountryId) VALUES (1)
INSERT INTO Countries (CountryId) VALUES (2)
INSERT INTO Countries (CountryId) VALUES (3)
GO
CREATE TABLE Cities( CityId INT PRIMARY KEY ,CountryId INT REFERENCES Countries ON DELETE CASCADE);
INSERT INTO Cities VALUES(1,1)
INSERT INTO Cities VALUES(2,1)
INSERT INTO Cities VALUES(3,2)
GO
CREATE TABLE Buyers(CustomerId INT PRIMARY KEY ,CityId INT REFERENCES Cities ON DELETE CASCADE);
INSERT INTO Buyers VALUES(1,1),
INSERT INTO Buyers VALUES(2,1)
INSERT INTO Buyers VALUES(3,2)
GO

命令:
DELETE FROM Countries WHERE CountryId = 1
结果:
Countries:
CountryId
2
3
Cities:
CityId CountryId
3 2
Buyers:
CustomerId CityId

ON UPDATE CASCADE的用法和ON DELETE CASCADE差不多

posted @ 2012-05-25 03:13  何解一直犯相同错误?  阅读(266)  评论(0编辑  收藏  举报