ORA-02253:此处不允许约束规范 - 外键

时间:2017-12-09 00:18:15

标签: sql oracle oracle11g constraints ddl

我是这个sql的新手,我想知道这个问题是什么。

  

“此处不允许使用约束规范”   原因:声明中不允许使用约束规范。

componentWillUpdate (nextProps) {
  if (!nextProps.isFocused) {
    // component is going out of focus, stop the music
    this.stop()
  }
}

3 个答案:

答案 0 :(得分:0)

在最后一行代码中,您定义了列cod_ciudad并添加了外键约束。

有两类约束:IN-LINE约束,在列名称和数据类型之后定义(它们只能影响“那个”列)和OUT-OF-LINE约束,它们位于表的底部,在所有列定义之后。涉及多个列的约束只能是外部约束。

您在代码中定义的约束仅在一列上,而且在cod_ciudad上。你没有在列定义(名称和数据类型)之间添加逗号;这是IN-LINE约束的正确语法。但是IN-LINE外键约束不需要关键字FOREIGN KEY,并且它们不需要在括号中重复列名。约束是IN-LINE,只能引用“当前”列。因此:修复代码的一种方法是从代码中删除FOREIGN KEY (COD_CIUDAD)

另一种解决方法是将约束条件设置为OUT-OF-LINE约束。然后语法是正确的,但您必须在关键字CONSTRAINT之前添加逗号(,)。

答案 1 :(得分:0)

试试这个:

CREATE TABLE CLIENTE(
   RUT              VARCHAR2(10)  NOT NULL,
   NOMBRE           VARCHAR2(20)  NOT NULL,
   APELLIDOP        VARCHAR2(30)  NOT NULL,
   APELLIDOM        VARCHAR2(30)  NOT NULL,
   DIRECCION        VARCHAR2(100) NOT NULL,
   TELEFONO         NUMBER(8)     NOT NULL,
   EMAIL            VARCHAR2(255) NOT NULL,
   FECHA_NACIMIENTO DATE          NOT NULL,
   SEXO             CHAR(1)       NOT NULL,
   COD_CIUDAD       NUMBER(3) 
);

ALTER TABLE CLIENTE
  ADD CONSTRAINT CLIENTE_PK PRIMARY KEY (RUT)
  USING INDEX;

ALTER TABLE CLIENTE
  ADD CONSTRAINT CLIENTE_CIUDAD_FK FOREIGN KEY (COD_CIUDAD)
  REFERENCES [FOREIGN KEY TABLE NAME] ([PRIMARY KEY COLUMN OF FOREIGN KEY TABLE]);

答案 2 :(得分:0)

您必须从列声明

中分离约束

只需使用以下命令

即可
CREATE TABLE CLIENTE(
RUT VARCHAR2(10) CONSTRAINT CLIENTE_PK PRIMARY KEY,
NOMBRE VARCHAR2(20) CONSTRAINT NOMBRE_CLIENTE NOT NULL,
APELLIDOP VARCHAR2(30) CONSTRAINT APELLIDOP_CLIENTE NOT NULL,
APELLIDOM VARCHAR2(30) CONSTRAINT APPELIDOM_CLIENTE NOT NULL,
DIRECCION VARCHAR2(100) CONSTRAINT DIRECCION_CLIENTE NOT NULL,
TELEFONO NUMBER(8) CONSTRAINT TELEFONO_CLIENTE NOT NULL,
EMAIL VARCHAR2(255) CONSTRAINT EMAIL_CLIENTE NOT NULL,
FECHA_NACIMIENTO DATE CONSTRAINT 
FECHA_NACIMIENTO_CLIENTE NOT NULL,
SEXO CHAR(1) CONSTRAINT SEXO_CLIENTE NOT NULL,
COD_CIUDAD NUMBER(3),
CONSTRAINT CLIENTE_CIUDAD_FK FOREIGN KEY (COD_CIUDAD) 
REFERENCES CIUDAD (COD_CIUDAD)
);