Heim >Datenbank >MySQL-Tutorial >sql server ql语句删除外键和删除

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

WBOY
WBOYOriginal
2016-06-07 17:47:491731Durchsuche

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


*/
?>

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:sql 查询重复记录Nächster Artikel:创建表的sql语句