2

我需要知道为什么在这部分代码中出现括号错误。

CREATE TABLE CIUDAD(
COD_CIUDAD NUMBER(3) CONSTRAINT CIUDAD_PK PRIMARY KEY (COD_CIUDAD),
NOMBRE VARCHAR2(20) CONSTRAINT NOTNULL_NOMBRE NOT NULL,
NOMBRE_REGION VARCHAR(20) CONSTRAINT NOTNULL_NOMBRE_REGION NOT NULL
);
4

2 回答 2

5

当您使用内联约束时,PRIMARY KEY自动引用正在声明的列。因此,(COD_CIUDAD)不接受。

尝试这个:

CREATE TABLE CIUDAD (
    COD_CIUDAD NUMBER(3) CONSTRAINT CIUDAD_PK PRIMARY KEY,
    NOMBRE VARCHAR2(20) CONSTRAINT NOTNULL_NOMBRE NOT NULL,
    NOMBRE_REGION VARCHAR2(20) CONSTRAINT NOTNULL_NOMBRE_REGION NOT NULL
);

我将类型更改NOMBRE_REGIONVARCHAR2().

于 2017-12-08T22:24:28.490 回答
1

使用PRIMARY KEY (COD_CIUDAD)语法时,约束必须与列分开定义或删除(COD_CIUDAD)

您应该使用以下查询:

CREATE TABLE CIUDAD(
COD_CIUDAD NUMBER(3) ,
NOMBRE VARCHAR2(20)  CONSTRAINT NOTNULL_NOMBRE NOT NULL,
NOMBRE_REGION VARCHAR(20)  CONSTRAINT NOTNULL_NOMBRE_REGION NOT NULL,
CONSTRAINT CIUDAD_PK PRIMARY KEY (COD_CIUDAD)
);

您也可以忽略命名NOT NULL约束:

CREATE TABLE CIUDAD(
COD_CIUDAD NUMBER(3) ,
NOMBRE VARCHAR2(20)  NOT NULL,
NOMBRE_REGION VARCHAR(20)  NOT NULL,
CONSTRAINT CIUDAD_PK PRIMARY KEY (COD_CIUDAD)
);

参考:

于 2017-12-08T22:24:26.743 回答