2017-06-23 3 views
2

SQL、レポートテーブルの作成時にこのエラーが発生するのはなぜですか?SQL、レポートテーブルの作成時にこのエラーが発生するのはなぜですか?

これはエラー

外部キーで参照される列のリストと一致する参照先テーブルには主キーまたは候補(「患者」)がありません「FK__Reports__Patient__2B3F6F97」です。 メンズ。 1750、レベル16、状態0、行29 制限またはインデックスを作成できませんでした。以前のエラーを参照してください。

この

は私のクエリ
create database kanirmaConnections; 
 
use kanirmaConnections 
 
go 
 

 
create table Messages(
 
    Id int identity primary key, 
 
    Recieve varchar(100), 
 
    Sender varchar(100), 
 
    Message varchar(100), 
 
    Idf int, 
 
    foreign key(Idf) references UserData(Id), 
 
); 
 

 
create table Patients(
 
    PatientID int identity, 
 
    Name varchar(100), 
 
    Age int, 
 
    Gender varchar(20), 
 
    BG varchar(100), 
 
    problem varchar(100), 
 
    Address varchar(100), 
 
    city varchar(20), 
 
    pincode int, 
 
    Idf int, 
 
    foreign key(Idf) references UserData(Id), 
 
); 
 

 
create table Reports(
 
    Id int identity, 
 
    PatientName varchar(100), 
 
    disease varchar(30), 
 
    briefExplain varchar(100), 
 
    symptoms varchar(100), 
 
    Admited varchar(100), 
 
    Idf int, 
 
    PatientIDf int, 
 
    primary key(Id, Idf, PatientIDf), 
 
    foreign key(Idf) references UserData(Id), 
 
    foreign key(PatientIDf) references Patients(PatientID), 
 
); 
 

 
create table UserData(
 
    Id int identity primary key, 
 
    Username varchar(20), 
 
    password varchar(30), 
 
    Email varchar(100), 
 
    job varchar(20), 
 
); 
 

 
/********************** 
 
primary key (Id_usuario), 
 
foreign key (Id_especialidadf) references Especialidad (Id_especialidad), 
 
foreign key (Id_rolf) references Roles (Id_rol) 
 
**********************/

答えて

3

PatientIdが整数IDとして宣言されているため、このエラーを取得しているが、それは主キーとして宣言されていません。

create table Patients(
    PatientID int identity primary key, 
    Name varchar(100), -- ^^^^^^^^^^^ 
    Age int, 
    Gender varchar(20), 
    BG varchar(100), 
    problem varchar(100), 
    Address varchar(100), 
    city varchar(20), 
    pincode int, 
    Idf int, 
    foreign key(Idf) references UserData(Id), 
); 

同じ問題が適用されますReportsテーブルに追加してください。

1

まず、UserDataテーブルを作成する必要があります。

第2に、患者テーブルの主キーを追加します。

私はそれがあなたを助けてくれることを願っています。

create table UserData(
    Id int identity primary key, 
    Username varchar(20), 
    password varchar(30), 
    Email varchar(100), 
    job varchar(20), 
); 

create table Messages(
    Id int identity primary key, 
    Recieve varchar(100), 
    Sender varchar(100), 
    Message varchar(100), 
    Idf int, 
    foreign key(Idf) references UserData(Id), 
); 

create table Patients(
    PatientID int identity primary key, 
    Name varchar(100), 
    Age int, 
    Gender varchar(20), 
    BG varchar(100), 
    problem varchar(100), 
    Address varchar(100), 
    city varchar(20), 
    pincode int, 
    Idf int, 
    foreign key(Idf) references UserData(Id), 
); 

create table Reports(
    Id int identity , 
    PatientName varchar(100), 
    disease varchar(30), 
    briefExplain varchar(100), 
    symptoms varchar(100), 
    Admited varchar(100), 
    Idf int, 
    PatientIDf int, 
    primary key(Id, Idf, PatientIDf), 
    foreign key(Idf) references UserData(Id), 
    foreign key(PatientIDf) references Patients(PatientID), 
); 
関連する問題