SQL:缺少括号

时间:2016-04-23 09:07:32

标签: sql database oracle parentheses banking

我已经尝试编辑命令并查看其他问题以回答这个问题,但我仍然感到害怕

  

ORA-00907:缺少右括号。

这是我的代码。是否有任何关键词我可能需要放在这里?感谢

CREATE TABLE Loan
(
    LoanID       INT IDENTITY ( 1, 1 ) UNIQUE,
    BranchID     INT NOT NULL REFERENCES Branch(BranchID) ON DELETE CASCADE,
    LoanNumber   CHAR(20) NOT NULL UNIQUE,
    LoanType     VARCHAR(30) NOT NULL,
    Amount       MONEY NOT NULL,
    ModifiedDate DATETIME DEFAULT (getdate()),

    PRIMARY KEY ( LoanID )
);

1 个答案:

答案 0 :(得分:2)

以下ddl在语法上是正确的。当然,您必须检查该语句是否真正产生了您想要的内容(特别是原始语句中的IDENTITY关键字未被考虑):

CREATE TABLE Loan
(
      LoanID       INTEGER NOT NULL PRIMARY KEY
    , BranchID     INTEGER NOT NULL               CONSTRAINT tl_fk_branchid  REFERENCES Branch(BranchID) ON DELETE CASCADE
    , LoanNumber   CHAR(20) NOT NULL              CONSTRAINT tl_u_loannumber UNIQUE 
                       -- right padded to length of 20 with blanks 
    , LoanType     VARCHAR2(30) NOT NULL
    , Amount       Number(*,4) NOT NULL     
                       -- cf. http://stackoverflow.com/a/29014422, changed per @BobJarvis' comment
    , ModifiedDate DATE DEFAULT SYSDATE
);

语法偏差如下:

  • IDENTITY的关键字
  • 内联约束规范
  • 表示日期和时间的数据类型
  • 字符串内容的数据类型
  • 替换货币数据类型
  • 当前日期时间