错误:没有唯一约束匹配给定引用表的键

问题描述 投票:0回答:1

我创建表格时收到错误。问题是AssCode不是唯一的,所以我可以将它设置为唯一,courseCode和AssCode的组合是唯一的,这就是它们被设置为主键的原因。我正在使用postgressql

这是错误:

错误:没有唯一约束匹配给定引用表“赋值”SQL状态的键:42830

这是我的代码:

CREATE TABLE Teachers (
    BSN int primary key,
    Surname varchar(40) NOT NULL,
    Name varchar(40) NOT NULL   
);

CREATE TABLE Courses  (
    CourseCode varchar(10) primary key,
    Name varchar(20) NOT NULL
);

CREATE TABLE Assignments (
    CourseCode varchar(10) REFERENCES Courses ON DELETE CASCADE,
    AssCode varchar(10),
    primary key(CourseCode,AssCode),
    DependOn varchar(10),
    Year date,  
    week int
);

CREATE TABLE WorkOn ( 
    BSN int REFERENCES Teachers(BSN),
    CourseCode varchar(10)  REFERENCES Assignments(CourseCode),
    AssCode varchar(10) REFERENCES Assignments(AssCode),
    primary key (CourseCode,BSN,AssCode)
 );
sql postgresql
1个回答
0
投票

我找到了答案:

CREATE TABLE WorkOn ( 
    BSN int primary key REFERENCES Teachers(BSN),   
    CourseCode varchar(10),
    AssCode varchar(10),    
    foreign key (CourseCode, AssCode) references Assignments (CourseCode, AssCode)
);
© www.soinside.com 2019 - 2024. All rights reserved.