sql 设置外键问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 设置外键问题相关的知识,希望对你有一定的参考价值。

create database guestroom
on
(name = guestroom_dat,
filename= 'd:\data\guestroom_dat.mdf',
size = 10,
maxsize=50,
filegrowth=5)

log on
(name='guestroom_log',
filename='d:\data\guestroom_log.ldf',
size=5mb,
maxsize=25mb,
filegrowth=5mb)
我在设置外键的时候总是出现
表‘Guestinfo’ 中的列与现存的主键或UNIQUE约束不匹配
我弄了一个下午 依然没有解决这个问题
希望高手看下

建表
建立guest表
USE GUESTROOM
GO
create table guestinfo(
Cid int primary key ,
Cname char(8) not null,
Csex char (2) not null,
Cage tinyint not null ,
Cpnum char (18) not null,
Cadd varchar (50) ,
Cintime smalldatetime not null,
Cday tinyint ,
Rnum char (5) not null,
Couttime smalldatetime ,
Cdeposit int not null,
Ccost int ,
Aid int not null)

建立adminifo表

USE GUESTROOM
GO
create table Adminifo (
Aid int primary key,
Aname varchar (16) not null ,
Anima varchar (16) not null ,
Alimit char (1) not null )

建立room表
USE GUESTROOM
GO
create table Roominfo (
Rnum varchar primary key,
Rtype char (4) ,
Rprice smalldatetime ,
Rstates char (2),
Cid int not null )

参考技术A pk_sno用了两次,只能用一次。
还有你用哪个字段关联student(sno)没有写
给你改了一下
create
table
sc
(

sno
char(8)
not
null,

cno
char(8)
not
null,

score
int,

constraint
pk_snocno
primary
key
(sno,cno),

constraint
pk_sno_key
foreign
key
(sno)
references
student(sno),

constraint
chk_score
check(score>0
and
score<=100)
);
参考技术B 你建立关系的两个列中可能有一个有重复的值,或是索引不对吧,可能有一个是唯一无重复的索引,一个却是有重复的.本回答被提问者采纳 参考技术C 这是圣诞及还是愚人节呢。这是个创建数据库的语句,咋标题问创建外键呢。平安果吃太多了吧

你创建外键的语句呢 拿来看看啊
参考技术D 创建时name后面应该打单引号,路径上应该是单引号,后面的size里的mb应该大写,小写应该会报错的

以上是关于sql 设置外键问题的主要内容,如果未能解决你的问题,请参考以下文章

sql server的主键与外键问题

急,sqlserver外键问题【高分】

sql怎么设置外键

sql怎么设置外键

sql如何在创建表时设置外键

怎么在SQL中设置外键