alter table 表名
add constraint 約束名
foreign key(欄位名) references 主表名(欄位名)
on delete cascade
語法: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:更新級聯
表的外來鍵約束
select 外來鍵表id=b.fkeyid
,外來鍵表名稱=object_name(b.fkeyid)
,外來鍵列id=b.fkey
,外來鍵列名=(select name from syscolumns where colid=b.fkey and id=b.fkeyid)
,主鍵表id=b.rkeyid
,主鍵表名=object_name(b.rkeyid)
,主鍵列id=b.rkey
,主鍵列名=(select name from syscolumns where colid=b.rkey and id=b.rkeyid)
from sysobjects a
join sysforeignkeys b on a.id=b.constid
join sysobjects c on a.parent_obj=c.id
where a.xtype='f' and c.xtype='u'
查詢乙個表的所有外來鍵:
select 主鍵列id=b.rkey
,主鍵列名=(select name from syscolumns where colid=b.rkey and id=b.rkeyid)
,外來鍵表id=b.fkeyid
,外來鍵表名稱=object_name(b.fkeyid)
,外來鍵列id=b.fkey
,外來鍵列名=(select name from syscolumns where colid=b.fkey and id=b.fkeyid)
from sysobjects a
join sysforeignkeys b on a.id=b.constid
join sysobjects c on a.parent_obj=c.id
where a.xtype='f' and c.xtype='u'
and object_name(b.rkeyid)='要查詢的表名'
mysql 級聯更新和刪除操作
我們通常有這樣的需求 刪除表table 1中記錄,需要同時刪除其它表中與table 1有關的若干記錄。對於這種,我們有兩種解決方法 一,使用innodb表的外來鍵約束 alter table score add constraint student ibfk1 foreign key sid sid...
資料庫級聯更新和刪除
如果a id,name 表為主表。b id,a id,name 表為從表,b.a id外來鍵關聯到a id。那麼如果需要更新a.id或者刪除a的資料,且在b表中有資料關聯到需要更新或者刪除的a表紀錄,那麼普通的更新必然會有外來鍵衝突。解決方法如下 mysql 在b表中建立delete cascade...
SQL 級聯刪除與級聯更新的方法
複製 如下 on delete cascade 當你更新或刪除主鍵表時,那麼外來鍵表也會跟隨一起更新或刪除,需要在建表時設定級聯屬性 create table countries countryid int primary key insert into countries countryid va...