【发布时间】:2015-05-04 10:10:25
【问题描述】:
当我更改表以添加外键时出现此错误:ORA-02270,知道吗?
CREATE/ALTER TABLE 语句中的 REFERENCES 子句给出了一个列列表,在被引用的表中没有匹配的唯一键或主键约束。
谢谢!
CREATE TABLE "SERMECOOP"."BENEFICIARIO"
( "IDBENEFICIARIO" NUMBER(9,0),
"RUT" CHAR(9 BYTE),
"APELLIDOPATERNO" VARCHAR2(100 BYTE) NOT NULL ENABLE,
"APELLIDOMATERNO" VARCHAR2(100 BYTE) NOT NULL ENABLE,
"NOMBRES" VARCHAR2(100 BYTE) NOT NULL ENABLE,
"FECHANACIMIENTO" TIMESTAMP (6) NOT NULL ENABLE,
"SEXO" NUMBER(9,0) NOT NULL ENABLE,
"DIRECCION" VARCHAR2(256 BYTE) NOT NULL ENABLE,
"IDCOMUNA" NUMBER(9,0),
"IDCIUDAD" NUMBER(9,0),
"IDREGION" NUMBER(9,0),
"EMAILPERSONAL" VARCHAR2(128 BYTE),
"INSTITUCIONDESALUD" NUMBER(9,0),
"EMAILCOMERCIAL" VARCHAR2(128 BYTE),
"TLFNOCELULAR" VARCHAR2(32 BYTE),
"TLFNOPARTICULAR" VARCHAR2(32 BYTE),
"TLFNOCOMERCIAL" VARCHAR2(32 BYTE),
"BANCO" NUMBER(9,0),
"CUENTACORRIENTE" VARCHAR2(32 BYTE),
"TIPOCUENTACORRIENTE" NUMBER(9,0),
"TIPOBENEFICIARIO" NUMBER(9,0),
"FECHAINCORPORACION" TIMESTAMP (6),
"RUTEJECUTIVO" CHAR(9 BYTE),
"TIPOAFILIADO" NUMBER(9,0),
"SEGUROCATASTROFICO" NUMBER(1,0) DEFAULT '0',
"SEGUROVIDA" NUMBER(1,0) DEFAULT '0',
PRIMARY KEY ("IDBENEFICIARIO"),
FOREIGN KEY ("SEXO")
REFERENCES "SERMECOOP"."TIPOSEXO" ("IDTIPOSEXO") ENABLE,
FOREIGN KEY ("IDCOMUNA")
REFERENCES "SERMECOOP"."COMUNAS" ("IDCOMUNA") ENABLE,
FOREIGN KEY ("INSTITUCIONDESALUD")
REFERENCES "SERMECOOP"."INSTITUCIONESDESALUD" ("IDINSTITUCIONDESALUD") ENABLE,
FOREIGN KEY ("BANCO")
REFERENCES "SERMECOOP"."BANCOS" ("IDBANCO") ENABLE,
FOREIGN KEY ("TIPOCUENTACORRIENTE")
REFERENCES "SERMECOOP"."TIPOCUENTACORRIENTE" ("IDTIPOCC") ENABLE,
FOREIGN KEY ("TIPOBENEFICIARIO")
REFERENCES "SERMECOOP"."TIPOSBENEFICIARIO" ("IDTIPOBENEFICIARIO") ENABLE,
FOREIGN KEY ("TIPOAFILIADO")
REFERENCES "SERMECOOP"."TIPOAFILIADO" ("IDTIPOAFILIADO") ENABLE,
FOREIGN KEY ("RUTEJECUTIVO")
REFERENCES "SERMECOOP"."USUARIOS" ("RUT") ENABLE
);
CREATE TABLE "SERMECOOP"."EMPLEADOS"
("IDBENEFICIARIO" NUMBER(9,0),
"EMPRESA" NUMBER(9,0),
"FECHAINGRESOEMPRESA" TIMESTAMP (6) NOT NULL ENABLE,
"SUCURSALEMPRESA" NUMBER(9,0),
"SUCURSALENVIOINFORMACION" NUMBER(9,0),
"SUELDOPACTADO" NUMBER(19,4),
"FECHABAJA" TIMESTAMP (6),
"TIPOCONTRATO" NUMBER(9,0),
"TIPOJORNADAHORA" VARCHAR2(100 BYTE),
"SINDICATO" VARCHAR2(100 BYTE),
PRIMARY KEY ("IDBENEFICIARIO", "EMPRESA")
FOREIGN KEY ("IDBENEFICIARIO")
REFERENCES "SERMECOOP"."BENEFICIARIO" ("IDBENEFICIARIO") ENABLE,
FOREIGN KEY ("EMPRESA")
REFERENCES "SERMECOOP"."EMPRESA" ("IDEMPRESA") ENABLE,
FOREIGN KEY ("SUCURSALEMPRESA")
REFERENCES "SERMECOOP"."SUCURSAL" ("IDSUCURSAL") ENABLE,
FOREIGN KEY ("SUCURSALENVIOINFORMACION")
REFERENCES "SERMECOOP"."SUCURSAL" ("IDSUCURSAL") ENABLE,
FOREIGN KEY ("TIPOCONTRATO")
REFERENCES "SERMECOOP"."TIPOSCONTRATOS" ("IDTIPOCONTRATO") ENABLE);
ALTER TABLE BENEFICIARIO
ADD FOREIGN KEY (IDBENEFICIARIO)
REFERENCES EMPLEADOS(IDBENEFICIARIO);
【问题讨论】:
-
你的表名在alter query中是错误的。
标签: oracle