我试图创建一个表,但它一直给我错误消息"无效的标识符",我一遍又一遍地搜索,无法弄清楚错误是什么用我的代码.....请帮助.....这里是我的代码..
create table ownership
(
oID number not null,
dID number not null,
start date,
end date,
primary key (oID,dID)
foreign key (oID) references owner(oID),
foreign key (dID) references dogs(dID)
);
我从nyc打开数据导入狗表,我也创建了所有者表.....表名没有错,我一遍又一遍地检查,表所有者的oID是主键,所以dID在表狗.....我试图删除不是空约束,同样的错误消息,我试图在主键之前放置约束pk_ownership,仍然得到相同的错误消息.....我真的无法弄清楚为什么...
这是一个学校项目,我是sql的超级新手,它是我第二天做sql的......如果我的问题是愚蠢的,请袒露我.....谢谢!
答案 0 :(得分:2)
您有两个主要错误:
start
是保留字 end
也是一个关键字,所以我也不鼓励使用它。
我会建议像:
create table ownership (
oID number not null,
dID number not null,
ownership_start date,
ownership_end date,
primary key (oID, dID),
foreign key (oID) references owner(oID),
foreign key (dID) references dogs(dID)
);
答案 1 :(得分:1)
在Oracle start
中是一个保留字。如果引用它,您可以使用它,如:
create table ownership
(
oID number not null,
dID number not null,
"start" date,
end date,
primary key (oID,dID),
foreign key (oID) references owner(oID),
foreign key (dID) references dogs(dID)
);
或者......您可以使用其他名称,例如start_ownership
。
P.S。:您还有一个小的语法错误。您在主键定义的末尾忘记了逗号。