Sql 创建表(Oracle)

Sql 创建表(Oracle),sql,oracle,create-table,Sql,Oracle,Create Table,我正在创建两个表。第一个表创建时没有错误,但是当我尝试创建子标题表时,我得到一个错误:第2行,缺少右括号。我不知道这条线出了什么问题。下面是我的SQL语句: CREATE TABLE HEAD (Code NUMERIC(4,0) NOT NULL PRIMARY KEY, HeadName VARCHAR(50) NOT NULL UNIQUE, HType VARCHAR(1) NOT NULL, HDate DATE NOT NULL, OpBal D

我正在创建两个表。第一个表创建时没有错误,但是当我尝试创建子标题表时,我得到一个错误:第2行,缺少右括号。我不知道这条线出了什么问题。下面是我的SQL语句:

CREATE TABLE HEAD
   (Code NUMERIC(4,0) NOT NULL PRIMARY KEY,
    HeadName VARCHAR(50) NOT NULL UNIQUE,
    HType VARCHAR(1) NOT NULL,
    HDate DATE NOT NULL,
    OpBal DECIMAL(11,2) NOT NULL
   );

CREATE TABLE SUBHEAD
   (HCode NUMERIC(4,0) NOT NULL FOREIGN KEY REFERENCES HEAD(Code),
    SubCode NUMERIC(4,0) NOT NULL,
    SubName VARCHAR(50) NOT NULL,
    SDate DATE NOT NULL,
    OpBal DECIMAL (11,2) NOT NULL,
    CONSTRAINT pk_subheadID PRIMARY KEY (HCode, SubCode)
   );
语法:
注意,“in-line”约束语法是:“col类型引用选项卡(col)”而不是“外键”

数字的数据类型是数字而不是数字

所以我的记忆并没有愚弄我-您可以有多个内嵌约束(尽管语法图没有显示):

语法:
注意,“in-line”约束语法是:“col类型引用选项卡(col)”而不是“外键”

数字的数据类型是数字而不是数字

所以我的记忆并没有愚弄我-您可以有多个内嵌约束(尽管语法图没有显示):

(请注意逗号和对新表格列的引用)


(请注意逗号,并参考新表列)

将外键声明放在constraints子句中。它为什么在我有的地方不起作用?我想你可以在两个地方都这么做。我对理论不在行,但我可以把事情做好。把外键声明放在约束子句中。为什么我有外键声明的地方它不起作用?我以为你可以在两个地方都做。我不擅长理论,但我能把事情做好。
SQL> create table tt1(a number primary key);

Table created.

SQL> create table tt2(a number references tt1(a) not null);

Table created.
CREATE TABLE SUBHEAD
   (HCode NUMERIC(4,0) NOT NULL, FOREIGN KEY (Hcode) REFERENCES HEAD(Code),
    SubCode NUMERIC(4,0) NOT NULL,
    SubName VARCHAR(50) NOT NULL,
    SDate DATE NOT NULL,
    OpBal DECIMAL (11,2) NOT NULL,
    CONSTRAINT pk_subheadID PRIMARY KEY (HCode, SubCode)
   );