
两种方法,命令与图形化
图形化,在控制台左边的小窗格中,找到要设置的表格名,右键,新建外键,然后根据要求设置既可。(新建关系图-->添加表 然后直接用鼠标拖字段连接就可以建立外键约束了 )
命令方式
sql ce表中建立外键约束的语法:CREATE TABLE DetectTable(UserID integer,StartTime datetime not null,EndTime datetime not null,MassName nvarchar(10), foreign key (UserID) references UserTable(UserID)),其中,UserID为UserTable表中的主键。
ACCESS数据库设置数据表外键可以通过SQL数据定义查询和手动设置表间参照完整性两种方式予以实现。
注意设置外键前一方表的关联字段必须是主键或建有唯一索引,下面举例示范这两种设置方法。假设两张数据表的结构如下:
课程(课程ID 文本 主键,课程)
成绩(学号,课程ID,分数)
1)运行SQL数据定义查询
ALTER TABLE 成绩 ADD CONSTRAINT MyRelation1 FOREIGN KEY (课程ID)REFERENCES 课程 (课程ID);
2)手动建立两表一对多参照完整性
于表对象——右键 打开表关系视图,将要建立关系的表显示到关系视图里
拖动一方主表里的关联字段到多方表里。于d出的编辑关系对话框,选择各表对应的关联字段,勾选实施参照完整性选项后,点击创建(或确定)按钮即可,这样系统就会自动建立相应的外键了。
参见附图(此为ACCESS2003图例,其他版本类似)
注意建立外键时,若数据表里存在违反外键约束的记录,创建外键将会报错,只有删除了违反外键约束的有关记录后才能顺利完成外键的设置。
附带简介一下外键 (FOREIGN KEY) ,它是用于在两个表中的数据之间建立和加强链接的一列或多列的组合,可控制可在外键表中存储的数据。 在外键引用中,当包含一个表的主键值的一个或多个列被另一个表中的一个或多个列引用时,就在这两个表之间创建了链接。 这个列就成为第二个表的外键。
为已经添加好的数据表添加外键:语法:
alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);drop table cotton; create table cotton( id int primary key, user varchar(11), email varchar(11), url varchar(11), content varchar(11), addTime date, biao_id int, constraint FK_biao_id foreign key (blog_id) references biao(id) )ENGINE=InnoDB DEFAULT CHARSET=gb2312; (注释:一定要记住varchar(11),否则可能就会出现错误,从已有表导出sql才看以出)。 此sql语句用sql-front导出后的结果是: DROP TABLE IF EXISTS `comment`; CREATE TABLE `comment` ( `id` int(11) NOT NULL, `user` varchar(11) default NULL, `email` varchar(11) default NULL, `url` varchar(11) default NULL, `content` varchar(11) default NULL, `addTime` date default NULL, `blog_id` int(11) default NULL, PRIMARY KEY (`id`), KEY `FK_blog_id` (`blog_id`) ) ENGINE=InnoDB DEFAULT CHARSET=gb2312; ALTER TABLE `comment` ADD FOREIGN KEY (`blog_id`) REFERENCES `blog` (`id`); 推荐人评论 实例讲解Mysql数据库中应当如何建立外键,值得参阅。
1、首先双击SQLyogEnt的快捷方式以打开软件;
2、进入到软件首页,首先创建一个新的数据库,命令为newMysql;
3、创建两个表,命令为class、student;
class表结构为id、class_code、class_name;
student表结构为id、class_code、student_code、student_name;
4、创建成功后,在newMysql数据库列表中就存在了两个表;
5、然后我们来创建外键;通过sql创建:alter table class add foreign key class_foreignKey(id) references student(id);
6、然后也可以对外键进行删除处理;通过sql删除:ALTER TABLE class DROP FOREIGN KEY class_foreignKey;
数据库mysql建立外键的前提:
本表的列必须与外键类型相同(外键必须是外表主键)。
外键作用:
使两张表形成关联,外键只能引用外表中的列的值!
指定主键关键字:
foreign
key(列名)
引用外键关键字:
references
<外键表名>(外键列名)
事件触发限制:
on
delete和on
update
,
可设参数cascade(跟随外键改动),
restrict(限制外表中的外键改动),set
Null(设空值),set
Default(设默认值),[默认]no
action
例如:
outTable表
主键
id
类型
int
创建含有外键的表:
create
table
temp(
id
int,
name
char(20),
foreign
key(id)
references
outTable(id)
on
delete
cascade
on
update
cascade);
说明:把id列
设为外键
参照外表outTable的id列
当外键的值删除
本表中对应的列筛除
当外键的值改变
本表中对应的列值改变。
自己实践
才能完全了解外键的作用
关键是:事件触发限制的作用
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)