首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ORA-00907 (缺少右括号)

ORA-00907 (缺少右括号)
EN

Stack Overflow用户
提问于 2021-04-18 01:36:49
回答 2查看 45关注 0票数 0

我试图在我的数据库中运行它,但由于某些原因,我总是遗漏了正确的括号。有什么想法?

代码语言:javascript
复制
CREATE TABLE PET_OWNER
(
    OwnerID Int NOT NULL IDENTITY(1, 1), 
    OwnerLastName Char(25) NOT NULL, 
    OwnerFirstName Char(25) NOT NULL, 
    OwnerPhone Char(12) NULL, 
    OwnerEmail VarChar(100) NULL
    CONSTRAINT OWNER_PK PRIMARY KEY(OwnerID) 
);
EN

回答 2

Stack Overflow用户

发布于 2021-04-18 02:33:50

EShirvana的回答直接回答了您提出的问题。然而,我建议:

代码语言:javascript
复制
CREATE TABLE PET_OWNER (
    OwnerID Int generated always as identity primary key,  
    OwnerLastName varchar2(25) NOT NULL, 
    OwnerFirstName varchar2(25) NOT NULL, 
    OwnerPhone varchar2(12), 
    OwnerEmail varchar2(100)
);

区别:

  • primary key约束可以内联。老实说,我通常不认为将主键命名为单独的约束有多大用处(no harm).
  • Declaring将主键列命名为NOT NULL是多余的。这是作为主键的一部分。
  • ,你知道char()数据类型是做什么的吗?它用空格填充字符串,使它们与长度相匹配。使用可变长度字符串--为此,Oracle建议使用varchar2()
  • 默认情况下,列为NULLable。实际上,我发现显式声明NULL比较难读,因为我必须区分NOT NULLNULL,这需要比仅仅查看NOT NULL.

更多的工作

票数 2
EN

Stack Overflow用户

发布于 2021-04-18 01:40:44

2个问题:身份和约束前缺少逗号:

代码语言:javascript
复制
CREATE TABLE PET_OWNER(
    OwnerID Int GENERATED ALWAYS AS IDENTITY NOT NULL,
    OwnerLastName Char(25) NOT NULL,
    OwnerFirstName Char(25) NOT NULL,
    OwnerPhone Char(12) NULL,
    OwnerEmail VarChar(100) NULL,
    CONSTRAINT OWNER_PK PRIMARY KEY(OwnerID)
);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67141099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档