位置:海鸟网 > IT > mySQL >

MYSQL--自身字段约束级联删除

# 建表
CREATE TABLE `T_TEST` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `PID` int(11) DEFAULT NULL,
  `NAME` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  KEY `index_1` (`PID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# 加约束,自身字段约束
alter table T_TEST ADD CONSTRAINT `T` FOREIGN KEY (`PID`) REFERENCES `T_TEST` (`Id`) ON DELETE CASCADE;

# 添加测试记录
insert into T_TEST values(1,1,'1'),(2,1,'2'),(3,1,'3'),(4,2,'4'),(5,2,'5'),(6,4,'6');
select * from t_test;

# 测试级联删除
delete from t_test where id=4;

级联删除,只要删除了父亲节点,此父亲节点派生出来的所有节点都被删除。不管下面是否又有分支