supermarrio

1.级联删除

sql server版:

 create table a
( id varchar(20) primary key, password varchar(20) not null ) create table b ( id int identity(1,1) primary key, name varchar(50) not null, userId varchar(20), foreign key (userId) references a(id) on delete cascade ) 

 mysql版本:

 

create table a(
id varchar(20) primary key,
password varchar(20) not null);

create table b(
id int primary key auto_increment,
name varchar(50) not null,
userId varchar(20),
foreign key(userId) references a(id) ON DELETE CASCADE ON UPDATE CASCADE);

 

表B创建了外码userId 对应A的主码ID,声明了级联删除

测试数据:

sql server版:

insert a values (\'11\',\'aaa\');
insert a values(\'23\',\'aaa\');
insert b values(\'da\',\'11\');
insert b values(\'das\',\'11\');
insert b values(\'ww\',\'23\');

 mysql版本:

insert a values (\'11\',\'aaa\');
insert a values(\'23\',\'aaa\');
insert into b(name,userId) values(\'da\',\'11\');
insert into b(name,userId) values(\'das\',\'11\');
insert into b(name,userId) values(\'ww\',\'23\'); 


删除A表内id为‘11’的数据,发现B表内userId 为“11”也被数据库自动删除了

delete a where id=\'11\'

 

2.采用存储过程
 
A表:
AID   Aname                                 主健:AID
B表:
BID   BelongAID Bname               主健:BID,外健:BelongAID 
C表:
CID BelongBID Cname                  主健:CID,外健:BelongBID
D表:
DID BelongCID Dname                  主健:DID,外健:BelongCID
其中:
A表和B表通过A.AID和B.BelongAID  创建了外健关系
B表和C表通过B.BID和C.BelongBID  创建了外健关系
C表和D表通过C.CID和D.BelongCID  创建了外健关系

 

3.采用触发器



分类:

技术点:

相关文章: