2017-04-14 57 views
0

我在分号之前的第二个查询的最后一行接收到一个错误,说operator_class是外键的无效数据类型,为什么我会收到此错误?外键约束无效的数据类型错误

CREATE TABLE Qualification(
    operator_class VARCHAR(2) NOT NULL PRIMARY KEY 
    ,description VARCHAR2(80) NOT NULL 
); 

CREATE TABLE Vehicle_Type(
    type VARCHAR2(20) NOT NULL PRIMARY KEY 
    ,capacity NUMBER(3,0) 
    ,fuel VARCHAR2(10), 
    operator_class VARCHAR2(2) NOT NULL, 
    constraint foreign key (operator_class) references Qualification(operator_class) 
); 

回答

0

varchar(2)varchar2(2)是不是同一类型。 Oracle建议(仍然)varchar2(),所以第一个表更改为:

CREATE TABLE Qualification (
    operator_class VARCHAR2(2) NOT NULL PRIMARY KEY, 
-------------------------^ 
    description VARCHAR2(80) NOT NULL 
); 
+0

做出改变,跑了,同样的错误 –

0

CREATE TABLE资格( operator_class VARCHAR2(2)NOT NULL PRIMARY KEY ,描述VARCHAR2(80)NOT NULL );

CREATE TABLE VEHICLE_TYPE( 类型VARCHAR2(20)NOT NULL PRIMARY KEY ,容量NUMBER(3,0) ,燃料VARCHAR2(10), operator_class VARCHAR2(2)NOT NULL, 约束constraint_name_FK外键( operator_class)引用资格(operator_class) );

添加约束名“constraint_name_FK”解决了我的错误