日期:2014-05-16  浏览次数:20733 次

navicat设置级联删除
.

级联删除:删除包含主键值的行的操作,该值由其它表的现有行中的外键列引用。在级联删除中,还删除其外键值引用删除的主键值的所有行。



语法:
  Foreign Key
  (column[,...n])
  references referenced_table_name[(ref_column[,...n])]
  [on delete cascade]
  [on update cascade]
  注释:
  column:列名
  referenced_table_name:外键参考的主键表名称
  ref_name:外键要参考的表的主键列
  on delete:删除级联
  on update:更新级联
  SQL级联删除——删除主表同时删除从表——同时删除具有主外键关系的表
  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
  )
  表B创建了外码userId 对应A的主码ID,声明了级联删除
  测试数据:
  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')
  删除A表内id为‘11’的数据,发现B表内userId 为“11”也被数据库自动删除了,这就是级联删除
  delete a where id='11'





但是我在最开始设计表的时候忘记级联了,现在需要修改,不会重建数据库吧!当然不会,我发现navicat就可以直接修改设置

1.




2.