怎么定义外键

cstt60777 2008-01-14 04:17:53
2 table
table 员工
[编号]
,[姓名]
,[身份证号]
,[性别]
,[固定电话]
,[手机]
,[照片]
table 上班时间
[员工编号]
,[上班时长]
,[上班日期]

我该怎么第两个表??

我已经定义了 员工表的[编号]是主键 ,上班时间表的主键是[员工编号],

但是我不会定义外键了,是在上班时间表中定义关系如下:主键是上班时间的员工编号,与之对应外键是员工表的编号

我这样定义对吗????

可是我员工表中员工只有001和002,可是我在上班时间表中天下员工008的上班时间,却是可以添加保存,

为什么,我添加关系错了,还是没有启用那里??我用的是sql2005
...全文
560 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouchunyu 2008-01-14
  • 打赏
  • 举报
回复
帮顶
zghua851004 2008-01-14
  • 打赏
  • 举报
回复
如果插入下面的语句将会报错
insert into tb2 values(008,getdate())

错误信息如下:
消息 547,级别 16,状态 0,第 1 行
INSERT 语句与 FOREIGN KEY 约束"FK_tb1_id"冲突。该冲突发生于数据库"sjk",表"dbo.tb1", column 'id'。
语句已终止。
zghua851004 2008-01-14
  • 打赏
  • 举报
回复
可是我员工表中员工只有001和002,可是我在上班时间表中天下员工008的上班时间,却是可以添加保存,
--
员供表中没有编号008,确能添加到上班时间表,说名你没有外键外键约束吧,下边是一个简单的例子。
create table tb1
(
id int primary key,
name varchar(20),

)
create table tb2
(
id int primary key,
time datetime
constraint FK_tb1_id FOREIGN KEY(id) REFERENCES tb1(id)
)
go
insert into tb1 values(001,'aa')
insert into tb1 values(002,'bb')

tim_spac 2008-01-14
  • 打赏
  • 举报
回复
table 员工
[编号] -- PK
,[姓名]
...

table 考勤记录
[LogID] -- PK
,[员工编号] -- FK
,[LoginTime]
,[LogoutTime]

table 上班时间
[员工编号] -- PK, FK
,[上班时长]
,[上班日期]
planebus 2008-01-14
  • 打赏
  • 举报
回复

create table 员工
[编号] primary key
,[姓名]
,[身份证号]
,[性别]
,[固定电话]
,[手机]
,[照片]

create table 上班时间
[员工编号] FOREIGH KEY REFERECCES 员工([编号])
,[上班时长]
,[上班日期]

planebus 2008-01-14
  • 打赏
  • 举报
回复

create table 员工
[编号] primary key
,[姓名]
,[身份证号]
,[性别]
,[固定电话]
,[手机]
,[照片]

create table 上班时间
[员工编号] FOREIGH KEY REFERECCES 员工([编号])
,[上班时长]
,[上班日期]

planebus 2008-01-14
  • 打赏
  • 举报
回复

create table 员工
[编号] primary key
,[姓名]
,[身份证号]
,[性别]
,[固定电话]
,[手机]
,[照片]

create table 上班时间
[员工编号] FOREIGH KEY REFERECCES 员工([编号])
,[上班时长]
,[上班日期]

qiuming0306 2008-01-14
  • 打赏
  • 举报
回复
应当是把员工表的编号当作上班时间表编号的外键,这才是你要的效果!就是fk在员工表上!
qiuming0306 2008-01-14
  • 打赏
  • 举报
回复
是不是你弄反了!
JL99000 2008-01-14
  • 打赏
  • 举报
回复
我已经定义了 员工表的[编号]是主键 ,上班时间表的主键是[员工编号],
但是我不会定义外键了,是在上班时间表中定义关系如下:主键是上班时间的员工编号,与之对应外键是员工表的编号
--
这么定义,把上班时间表中的编号既做为主键,又做为外键


可是我员工表中员工只有001和002,可是我在上班时间表中天下员工008的上班时间,却是可以添加保存,
为什么,我添加关系错了,还是没有启用那里??我用的是sql2005
--
应该不可能吧,仔细看看,是不是把员工表中的编号做为了上班时间表的外键了

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧