一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

sql server ql语句删除外键和删除

时间:2010-10-19 编辑:简简单单 来源:一聚教程网

sql server ql语句删除外键和删除
alter   table   tablename   add   constraint   ordersrelationship  
                        foreign   key   mployeeid
      references   employees   (employeeid)  
                        on   delete     cascade  
                        on   update     cascade  
     

alter table books add constrait 外健名--指定一下名
add foreign key (isbn) references readers(readerid);
alter table books drop constraint 外健名


设置表mybbs中的authorid为sql外键的方法及步骤进行了详细说明,希望对您能够有所启迪。

设置表mybbs中的authorid为sql server外键,参照author表的id字段,直接使用transact sql语句,过程如下:

--增加表mybbs(authorid)的sql server外键约束fk_mybbs_author,表mybbs中的authorid受表author中的sql server主键id约束:
begin transaction
alter table dbo.mybbs add constraint fk_mybbs_author
  foreign key (authorid)
  references  dbo.author([id]) on update cascade on delete cascade

--删除sl外键约束fk_mybbs_author:
--alter table dbo.mybbs drop constraint fk_mybbs_author
--rollback
commit transaction

上面on update cascade,on delete cascade两个选项,指明以后author表的id字段有delete,update操作时,mybbs表中的id也会被级联删除或更新。如果没有选中,是不可以对author表中已被mybbs表关联的id进行update或者delete操作的。

 

看个实例

create table `board` (

  `board_id` int(11) not null auto_increment,

  `catalog_id` int(11) not null default '0',

  `board_name` varchar(100) character set utf8 not null default '',

  `board_descrip` varchar(255) character set utf8 default null,

  `board_type` varchar(30) character set utf8 default null,

  primary key (`board_id`),

  key `外键` (`catalog_id`),

  constraint `外键约束` foreign key (`catalog_id`) references `catalog` (`catalog_id`)on delete cascade on update cascade //级联删除的关键语句

) engine=innodb auto_increment=13 default charset=gbk;


sql外键两种用途:
1/, 最常用的一种: 减少重复数据.表a中拥有外键,表b的数据基本是不允许删除的.这时选择对 insert 和 update 强制关系即可.
2/,其次,是增加一个从属表. 如果表a删除一条记录时,表b中也随着删除一条相关联的记录,那么外键关系中,表a的主键是表b的外键。这种关系,实际上表b是表a的从属表(即表a是父表),选择对 insert 和 update 强制关系时,如果向表b中插入数据,表a中必须已经存在对应的记录。选择级联删除相关的字段时,删除表a中的一条记录,就会删除对应的表b中的一条记录。


*/
?>

热门栏目