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中的一条记录。
*/
?>