创建两个表时出现错误,但我没有在第二个表上缺少右括号。
我尝试了此代码的不同oracle变体,但仍然出现错误。
(ORACLE LIVE SQL)
CREATE TABLE PET_OWNER
(OwnerID Integer Primary Key,
OwnerLastName Char(25) Not Null,
OwnerFirstName Char(25) Not Null,
OwnerPhone Char(25) Null,
OwnerEmail Char(50) Not Null);
CREATE TABLE PET_DATA
(PetID Integer Not Null,
PetName Char(50) Not Null,
PetType Char(25) Not Null,
PetBreed Char(50) Not Null,
PetDOB Varchar(50) Not Null,
Primary Key (PetID)
Constraint FK_PetOwner Foreign Key (OwnerID)
References Owner(OwnerID));
我希望可以创建表,但是只有第一个表可以成功创建。第二个表具有外键。
答案 0 :(得分:1)
在第二张表的主键定义之后,您似乎缺少逗号。
当真正的问题是其他语法错误时,Oracle分析器通常会抱怨缺少右括号。
答案 1 :(得分:0)
我建议:
CREATE TABLE PET_OWNER (
OwnerID Integer Primary Key,
OwnerLastName varchar2(25) Not Null,
OwnerFirstName varchar2(25) Not Null,
OwnerPhone varchar2(25) Null,
OwnerEmail varchar2(50) Not Null
);
CREATE TABLE PET_DATA (
PetID Integer Not Null,
OwnerID Integer,
PetName varchar2(50) Not Null,
PetType varchar2(25) Not Null,
PetBreed varchar2(50) Not Null,
PetDOB varchar2(50) Not Null,
Primary Key (PetID),
Constraint FK_PetOwner Foreign Key (OwnerID) References Pet_Owner(OwnerID)
);
这解决了一些小问题(第二个表中缺少OwnerId
列,错误的表名)。它还将varchar2()
用作可变长度的字符串,而不是char()
,它们使用空格填充到指定的长度。