use studentInfos_200730621190
create table depts
(dno char(10) primary key
dname varchar(10)
mgr varchar(10)
)
go
alter table student1 add constraint c
foreign key(dept) references depts(dno)
表student1已建立,设置表student1内的dept为外键,引用depts中的dno运行后出错在被引用表 'student1' 中没有与外键 'c' 的引用列的列表匹配的主键或候选键求助~谢谢

解决方案 »

  1.   

    重新试了下错误显示为
    ALTER TABLE 语句与 COLUMN FOREIGN KEY 约束 'c1' 冲突。该冲突发生于数据库 'studentInfos_200730621190',表 'depts', column 'dno'
    求助
      

  2.   

    CREATE TABLE student1
    (sno char(10)NOT NULL PRIMARY KEY,
    name varchar(10)NOT NULL,
    sex char(1)CHECK(sex=0 or sex=1),
    bdate datetime,
    dept varchar(10),
    dormitory varchar(10)
    )
    这是之前建立student1的,放上来
      

  3.   

    -- dept varchar(10)-》dept char(10) 与 dno char(10)保持一致CREATE TABLE student1 
    (sno char(10)NOT NULL PRIMARY KEY, 
    name varchar(10)NOT NULL, 
    sex char(1)CHECK(sex=0 or sex=1), 
    bdate datetime, 
    --dept varchar(10), 
    dept char(10),
    dormitory varchar(10) 
    ) gocreate table depts 
    (dno char(10) primary key, 
    dname varchar(10), 
    mgr varchar(10), 
    ) go alter table student1 add 
    foreign key(dept) references depts(dno) 
    --drop table student1
    --drop table depts
      

  4.   

    或者将depts 的dno char(10) primary key 改成 dno varchar(10) primary key
    总之主外键要保存一致的类型
      

  5.   

    drop table student1
    go
    CREATE TABLE student1
    (sno char(10)NOT NULL PRIMARY KEY,
    name varchar(10)NOT NULL,
    sex char(1)CHECK(sex=0 or sex=1),
    bdate datetime,
    dept char(10),
    dormitory varchar(10)

    go
    drop table depts
    go
    create table depts
    (dno char(10) primary key,
    dname varchar(10),
    mgr varchar(10)
    )
    go
    alter table student1 add constraint c
    foreign key(dept) references depts(dno) 用这个就OK了.
      

  6.   

    CREATE TABLE student1 
    (sno char(10)NOT NULL PRIMARY KEY, 
    name varchar(10)NOT NULL, 
    sex char(1)CHECK(sex=0 or sex=1), 
    bdate datetime, 
    --dept varchar(10), 
    dept char(10),
    dormitory varchar(10) 
    ) gocreate table depts 
    (dno char(10) primary key, 
    dname varchar(10), 
    mgr varchar(10), 
    ) go alter table student1 add 
    foreign key(dept) references depts(dno) 
      

  7.   

    CREATE TABLE student1 
    (sno char(10)NOT NULL PRIMARY KEY, 
    name varchar(10)NOT NULL, 
    sex char(1)CHECK(sex=0 or sex=1), 
    bdate datetime, 
    --dept varchar(10), 
    dept char(10),
    dormitory varchar(10) 
    ) gocreate table depts 
    (dno char(10) primary key, 
    dname varchar(10), 
    mgr varchar(10), 
    ) go alter table student1 add 
    foreign key(dept) references depts(dno)