我在第二个查询的最后一行收到错误,在分号前说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 :(得分:0)
varchar(2)
和varchar2(2)
的类型不同。 Oracle建议(仍然)varchar2()
,因此将第一个表更改为:
CREATE TABLE Qualification (
operator_class VARCHAR2(2) NOT NULL PRIMARY KEY,
-------------------------^
description VARCHAR2(80) NOT NULL
);
答案 1 :(得分:0)
创建表格资格( operator_class VARCHAR2(2)NOT NULL PRIMARY KEY ,description VARCHAR2(80)NOT NULL );
CREATE TABLE Vehicle_Type( type VARCHAR2(20)NOT NULL PRIMARY KEY ,容量NUMBER(3,0) ,燃料VARCHAR2(10), operator_class VARCHAR2(2)NOT NULL, 约束constraint_name_FK外键(operator_class)引用Qualification(operator_class) );
添加约束名称“constraint_name_FK”解决了我的错误