2017-06-19 19 views
1

最初にこのテーブル名DEPARTMENTを作成し、その後このテーブルのDnumberに外部キー参照を持つDept_Locationsを作成しました。 Dept_Locationsテーブルのは外部キーconstarintを追加できません

create table DEPARTMENT(
Dname    varchar(20)  NOT NULL, 
Dnumber    int    NOT NULL, 
Mgr_ssn    char(9)   NOT NULL, 
Mgr_start_date  date   NOT NULL, 
Primary key(Dnumber), 
Unique(Dname) 
); 

コード:私はDept_Locationsを作成するため、このコードを実行するとき

create table Dept_Locations(
Dnum char(4), 
Dlocation varchar(16), 
primary key(Dnum,Dlocation), 
foreign key(Dnum) references DEPARTMENT(Dnumber)); 

は今、私はエラーを取得:外部キー制約を追加することはできません。

誰か助けてください。

答えて

1

外部キーは、参照する列と同じデータ型でなければなりません。 DEPARTMENTで

カラムDnumberintであり、そしてカラムDnumchar(4)のように定義される - それはintとして定義されなければなりません。

0

データ型が異なると考えてください。

Dnum char(4) 

Dnumber int 
0

外部キー制約を持つあなたの主キーと列のサイズが異なる - 試してみてください。

create table DEPARTMENT(
Dname    varchar(20)  NOT NULL, 
Dnumber    char(4)   NOT NULL, # <-- Note the size change 
Mgr_ssn    char(9)   NOT NULL, 
Mgr_start_date  date   NOT NULL, 
Primary key(Dnumber), 
Unique(Dname) 
); 

(または一致する他の更新)

関連する問題