sql怎么设置外键
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql怎么设置外键相关的知识,希望对你有一定的参考价值。
参考技术A sqlserver中建立外键约束有3中方式:enterprise
manager中,tables,design
table,设置table的properties,可以建立constraint,
reference
key;enterprise
manager中,diagrams,
new
diagrams,建立两个表的关系;直接用transact
sql语句。
1、三个方法都需要先建立数据表。
1)创建表author
:
create
table
[dbo].[author]
(
[id]
[bigint]
not
null
,
[authorname]
[char]
(10)
null
,
[address]
[char]
(480)
null
,
[introduction]
[ntext]
null
)
2)创建表mybbs:
reate
table
[dbo].[mybbs]
(
[id]
[bigint]
identity
(1,
1)
not
null
,
[authorid]
[bigint]
not
null
,
[title]
[char]
(40)
null
,
[date_of_created]
[datetime]
null
,
[abstract]
[char]
(480)
null
,
[content]
[ntext]
null
)
2、设置表mybbs中的authorid为外键,参照author表的id字段,直接使用transact
sql语句,过程如下:
1)增加表mybbs(authorid)的外键约束fk_mybbs_author,表mybbs中的authorid受表author中的主键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
2)删除外键约束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操作的。
拓展资料:
SQL的主键和外键的作用:
1、插入非空值时,如果主键表中没有这个值,则不能插入。
2、更新时,不能改为主键表中没有的值。
3、删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。
4、更新主键记录时,同样有级联更新和拒绝执行的选择。
简而言之,SQL的主键和外键就是起约束作用。
Navicat for MySQL怎么将设置成外键的ID设置自动增长
为什么把这个ID设置成自动增长,保存时出现这个错误?怎么样才能解决?我是个MYSQL小白,不懂求大神们教教。
先设置外键表中的字段 自增长 然后再设置 外键 这样的顺序就可以将主键表和外键表 就都可以设置自增了 参考技术A 外键不能设置自动增长 只有主键才能自增长 参考技术B 先设置主键自增,再设置成外键 参考技术C sjdksfhcosdoiwosdkl; 参考技术D 这个是说的id字段有外键关联, 有外键关联的话 怎么能设置自增呢以上是关于sql怎么设置外键的主要内容,如果未能解决你的问题,请参考以下文章