创建表格的一点问题,请大家进来看一下!

cavonchen 2007-12-11 01:39:53
/*房间表*/
CREATE TABLE FJ
(
FNO CHAR(10) NOT NULL,/*房间号码*/
FPROP CHAR(10) NOT NULL,/*房间属性*/
FPRI INT, /*房间价格*/
PRIMARY KEY(FNO,FPROP)
)
GO
/*用户信息,住户登记时候调用该表*/
CREATE TABLE YHXX
(
FNO CHAR(10) NOT NULL,/*房间号码*/
IDNO CHAR(20) NOT NULL,/*身份证号码*/
DPRI INT,/*房价*/
PRIMARY KEY (FNO),/*主码是房间号码*/
FOREIGN KEY (FNO) REFERENCES FJ(FNO)/*房间号码参照FJ的房间号码*/
)
GO
/*登陆信息*/
CREATE TABLE DLXX
(
EMNO CHAR(10) NOT NULL,/*员工号*/
PAWORD CHAR(20) NOT NULL,/*密码*/
PRIMARY KEY (EMNO)/*员工号是主码*/
)
GO
/*入住表*/
CREATE TABLE RZ
(
EMNO CHAR(10) NOT NULL/*员工号,处理这张表的员工的号码*/,
FNO CHAR(10) NOT NULL/*房间号*/,
FPRI INT,/*房间价格*/
DISCOUNT SMALLINT CHECK(DISCOUNT <= 100 AND DISCOUNT >= 0),/*折扣,小整形,是一个0-100之间的整数*/
DAYS SMALLINT,
PRIMARY KEY (EMNO,FNO),
FOREIGN KEY (FNO) REFERENCES FJ(FNO),/*房间号还是参照FJ表中的房间号码*/
FOREIGN KEY (FPRI) REFERENCES FJ(FPRI)/*价格也是参照FJ表中的价格*/
)
GO


出现的问题是服务器:
消息 1776,级别 16,状态 1,行 2
在被引用表 'FJ' 中没有与外键 'FK__YHXX__FNO__44FF419A' 的引用列的列表匹配的主键或候选键。
服务器: 消息 1750,级别 16,状态 1,行 2
未能创建约束。请参阅前面的错误信息。
服务器: 消息 1776,级别 16,状态 1,行 2
在被引用表 'FJ' 中没有与外键 'FK__RZ__FNO__4AB81AF0' 的引用列的列表匹配的主键或候选键。
服务器: 消息 1750,级别 16,状态 1,行 2
未能创建约束。请参阅前面的错误信息。
请问大家要怎么解决啊??
...全文
78 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2007-12-11
  • 打赏
  • 举报
回复
这样不行了,FJ 是复合主健,不能这样用。。
在FJ定义一个唯一健
kk19840210 2007-12-11
  • 打赏
  • 举报
回复
表 FJ 的主键时个复合 主键
PRIMARY KEY(FNO,FPROP)


表 YHXX
是你的外键 只是与其中一个进行 关联
FOREIGN KEY (FNO) REFERENCES FJ(FNO)



RZ 是与主键的列信息不对

FOREIGN KEY (FNO,fpri) REFERENCES FJ(FNO,fpri),/*房间号还是参照FJ表中的房间号码*/
FOREIGN KEY (FPRI) REFERENCES FJ(FPRI)

34,837

社区成员

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

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