在数据库中创建 TABLE 时出错

Posted

技术标签:

【中文标题】在数据库中创建 TABLE 时出错【英文标题】:Error while creating TABLE in database 【发布时间】:2016-10-04 07:49:46 【问题描述】:

我正在使用 oracle 10g ex 学习所以这是我的代码

CREATE TABLE MINE 
(
    NAME VARCHAR(10),
    ID INT(3) PRIMARY KEY 
);

我的错误是

ORA-00907:缺少右括号。

但我没有错过正确的括号。还有其他机会或我必须知道的事情来解决这个问题。

【问题讨论】:

【参考方案1】:

INT 不需要大小 - 它是 NUMBER(38) 的别名。

CREATE TABLE MINE 
(
    NAME VARCHAR(10),
    ID   INT PRIMARY KEY 
);

但是,您可能想要使用 VARCHAR2NUMBER 类型:

CREATE TABLE MINE 
(
    NAME VARCHAR2(10),
    ID   NUMBER(3,0) PRIMARY KEY 
);

现在是养成好习惯的时候了——你可能还想为你的约束命名:

CREATE TABLE MINE 
(
    NAME VARCHAR2(10),
    ID   NUMBER(3,0) CONSTRAINT mine__id__pk PRIMARY KEY 
);

【讨论】:

【参考方案2】:

int 数据类型不接受大小参数:

CREATE TABLE MINE 
(
    NAME VARCHAR(10),
    ID INT PRIMARY KEY -- Here!
);

【讨论】:

【参考方案3】:

创建表 Mine(name varchar(10),Id number(20) PRIMARY KEY);

【讨论】:

能否请您 edit 解释为什么这段代码回答了这个问题?纯代码答案是 discouraged,因为它们不教授解决方案。

以上是关于在数据库中创建 TABLE 时出错的主要内容,如果未能解决你的问题,请参考以下文章

请问MySQL中创建表哪里出错了? CREATE TABLE emp( empno INT(4) PRIMARY KEY, name VARCHAR(5) NOT NULL,

在 phppgadmin 中创建数据库时出错

在 Spark 中创建数据帧时出错

在 Cloudera Impala(虚拟机)中创建数据库时出错

在 Spring Boot 中创建数据源时出错

在 SQL Server 中创建数据库用户时使用 pymssql 出错