fix llaves primarias

This commit is contained in:
Chris Cromer 2020-06-27 14:41:02 -04:00
parent 6f2d5efc61
commit a956d20c82
2 changed files with 20 additions and 2 deletions

View File

@ -4,12 +4,14 @@ CREATE TABLE MEDALLA(
CONSTRAINT MEDALLA_PK PRIMARY KEY (ID_MEDALLA) CONSTRAINT MEDALLA_PK PRIMARY KEY (ID_MEDALLA)
); );
CREATE TABLE CATEGORIA( CREATE TABLE CATEGORIA(
ID_CATEGORIA NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1), ID_CATEGORIA NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
DESCRIPCION VARCHAR(50), DESCRIPCION VARCHAR(50),
CONSTRAINT CATEGORIA_PK PRIMARY KEY (ID_CATEGORIA) CONSTRAINT CATEGORIA_PK PRIMARY KEY (ID_CATEGORIA)
); );
CREATE TABLE ATLETA ( CREATE TABLE ATLETA (
ID_ATLETA NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1), ID_ATLETA NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
NOMBRE VARCHAR2(50), NOMBRE VARCHAR2(50),
@ -19,18 +21,21 @@ CREATE TABLE ATLETA (
CONSTRAINT ATLETA_PK PRIMARY KEY (ID_ATLETA) CONSTRAINT ATLETA_PK PRIMARY KEY (ID_ATLETA)
); );
CREATE TABLE PAIS( CREATE TABLE PAIS(
ID_PAIS NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1), ID_PAIS NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
NOMBRE VARCHAR(50), NOMBRE VARCHAR(50),
CONSTRAINT PAIS_PK PRIMARY KEY (ID_PAIS) CONSTRAINT PAIS_PK PRIMARY KEY (ID_PAIS)
); );
CREATE TABLE TIPOS_DEPORTES( CREATE TABLE TIPOS_DEPORTES(
ID_TIPO NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1), ID_TIPO NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
DESCRIPCION VARCHAR(50), DESCRIPCION VARCHAR(50),
CONSTRAINT TIPO_PK PRIMARY KEY (ID_TIPO) CONSTRAINT TIPO_PK PRIMARY KEY (ID_TIPO)
); );
CREATE TABLE CIUDAD ( CREATE TABLE CIUDAD (
ID_CIUDAD NUMBER, ID_CIUDAD NUMBER,
NOMBRE VARCHAR(50), NOMBRE VARCHAR(50),
@ -39,6 +44,7 @@ CREATE TABLE CIUDAD (
CONSTRAINT CIUDAD_PAIS_FK FOREIGN KEY (PAIS) REFERENCES PAIS(ID_PAIS) CONSTRAINT CIUDAD_PAIS_FK FOREIGN KEY (PAIS) REFERENCES PAIS(ID_PAIS)
); );
CREATE TABLE LUGAR ( CREATE TABLE LUGAR (
ID_LUGAR NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1), ID_LUGAR NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
NOMBRE VARCHAR2(50), NOMBRE VARCHAR2(50),
@ -48,6 +54,7 @@ CREATE TABLE LUGAR (
CONSTRAINT LUGAR_CIUDAD_FK FOREIGN KEY (CIUDAD) REFERENCES CIUDAD(ID_CIUDAD) CONSTRAINT LUGAR_CIUDAD_FK FOREIGN KEY (CIUDAD) REFERENCES CIUDAD(ID_CIUDAD)
); );
CREATE TABLE HOTEL( CREATE TABLE HOTEL(
ID_HOTEL NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1), ID_HOTEL NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
NOMBRE VARCHAR2(50), NOMBRE VARCHAR2(50),
@ -56,6 +63,7 @@ CREATE TABLE HOTEL(
CONSTRAINT HOTEL_CIUDAD_FK FOREIGN KEY (CIUDAD) REFERENCES CIUDAD(ID_CIUDAD) CONSTRAINT HOTEL_CIUDAD_FK FOREIGN KEY (CIUDAD) REFERENCES CIUDAD(ID_CIUDAD)
); );
CREATE TABLE CAPITAL( CREATE TABLE CAPITAL(
ID_PAIS NUMBER, ID_PAIS NUMBER,
ID_CIUDAD NUMBER, ID_CIUDAD NUMBER,
@ -76,6 +84,7 @@ CREATE TABLE DELEGACION(
CONSTRAINT DELEGACION_ATLETA_FK FOREIGN KEY (ATLETA) REFERENCES ATLETA(ID_ATLETA) CONSTRAINT DELEGACION_ATLETA_FK FOREIGN KEY (ATLETA) REFERENCES ATLETA(ID_ATLETA)
); );
CREATE TABLE COMPETENCIA( CREATE TABLE COMPETENCIA(
ID_COMPETENCIA NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1), ID_COMPETENCIA NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
NOMBRE VARCHAR2(50), NOMBRE VARCHAR2(50),
@ -88,6 +97,7 @@ CREATE TABLE COMPETENCIA(
CONSTRAINT COMPETENCIA_LUGAR_FK FOREIGN KEY (LUGAR) REFERENCES LUGAR(ID_LUGAR) CONSTRAINT COMPETENCIA_LUGAR_FK FOREIGN KEY (LUGAR) REFERENCES LUGAR(ID_LUGAR)
); );
CREATE TABLE PRECOMPETENCIA( CREATE TABLE PRECOMPETENCIA(
ID_PRECOMPETENCIA NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1), ID_PRECOMPETENCIA NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),
FECHA DATE, FECHA DATE,
@ -98,6 +108,7 @@ CREATE TABLE PRECOMPETENCIA(
CONSTRAINT PRECOMPETENCIA_LUGAR_FK FOREIGN KEY (LUGAR) REFERENCES LUGAR(ID_LUGAR) CONSTRAINT PRECOMPETENCIA_LUGAR_FK FOREIGN KEY (LUGAR) REFERENCES LUGAR(ID_LUGAR)
); );
CREATE TABLE HOSPEDAR( CREATE TABLE HOSPEDAR(
ID_HOTEL NUMBER, ID_HOTEL NUMBER,
ID_DELEGACION NUMBER, ID_DELEGACION NUMBER,
@ -105,34 +116,41 @@ CREATE TABLE HOSPEDAR(
FECHA_FIN DATE, FECHA_FIN DATE,
PRECIO_DELEGACION NUMBER, PRECIO_DELEGACION NUMBER,
PRECIO_ATLETA NUMBER, PRECIO_ATLETA NUMBER,
CONSTRAINT HOSPEDAR_PK PRIMARY KEY (ID_HOTEL, ID_DELEGACION, FECHA_INICIO),
CONSTRAINT HOSPEDAR_HOTEL_FK FOREIGN KEY (ID_HOTEL) REFERENCES HOTEL(ID_HOTEL), CONSTRAINT HOSPEDAR_HOTEL_FK FOREIGN KEY (ID_HOTEL) REFERENCES HOTEL(ID_HOTEL),
CONSTRAINT HOSPEDAR_DELEGACION_FK FOREIGN KEY (ID_DELEGACION) REFERENCES DELEGACION(ID_DELEGACION) CONSTRAINT HOSPEDAR_DELEGACION_FK FOREIGN KEY (ID_DELEGACION) REFERENCES DELEGACION(ID_DELEGACION)
); );
CREATE TABLE GANAR( CREATE TABLE GANAR(
ID_ATLETA NUMBER, ID_ATLETA NUMBER,
ID_COMPETENCIA NUMBER, ID_COMPETENCIA NUMBER,
ID_MEDALLA NUMBER, ID_MEDALLA NUMBER,
FECHA DATE, FECHA DATE,
PUNTAJE NUMBER, PUNTAJE NUMBER,
CONSTRAINT GANAR_PK PRIMARY KEY (ID_ATLETA, ID_COMPETENCIA, FECHA),
CONSTRAINT GANAR_ATLETA_FK FOREIGN KEY (ID_ATLETA) REFERENCES ATLETA(ID_ATLETA), CONSTRAINT GANAR_ATLETA_FK FOREIGN KEY (ID_ATLETA) REFERENCES ATLETA(ID_ATLETA),
CONSTRAINT GANAR_COMPETENCIA_FK FOREIGN KEY (ID_COMPETENCIA) REFERENCES COMPETENCIA(ID_COMPETENCIA), CONSTRAINT GANAR_COMPETENCIA_FK FOREIGN KEY (ID_COMPETENCIA) REFERENCES COMPETENCIA(ID_COMPETENCIA),
CONSTRAINT GANAR_MEDALLA_FK FOREIGN KEY (ID_MEDALLA) REFERENCES MEDALLA(ID_MEDALLA) CONSTRAINT GANAR_MEDALLA_FK FOREIGN KEY (ID_MEDALLA) REFERENCES MEDALLA(ID_MEDALLA)
); );
CREATE TABLE PARTICIPAR_COMPETENCIA( CREATE TABLE PARTICIPAR_COMPETENCIA(
ID_COMPETENCIA NUMBER, ID_COMPETENCIA NUMBER,
ID_ATLETA NUMBER, ID_ATLETA NUMBER,
FECHA DATE, FECHA DATE,
CONSTRAINT PARTICIPAR_COMPETENCIA_PK PRIMARY KEY (ID_COMPETENCIA, ID_ATLETA, FECHA),
CONSTRAINT PARTICIPAR_COMPETENCIA_COMPETENCIA_FK FOREIGN KEY (ID_COMPETENCIA) REFERENCES COMPETENCIA(ID_COMPETENCIA), CONSTRAINT PARTICIPAR_COMPETENCIA_COMPETENCIA_FK FOREIGN KEY (ID_COMPETENCIA) REFERENCES COMPETENCIA(ID_COMPETENCIA),
CONSTRAINT PARTICIPAR_COMPETENCIA_ATLETA_FK FOREIGN KEY (ID_ATLETA) REFERENCES ATLETA(ID_ATLETA) CONSTRAINT PARTICIPAR_COMPETENCIA_ATLETA_FK FOREIGN KEY (ID_ATLETA) REFERENCES ATLETA(ID_ATLETA)
); );
CREATE TABLE PARTICIPAR_PRECOMPETENCIA( CREATE TABLE PARTICIPAR_PRECOMPETENCIA(
ID_PRECOMPETENCIA NUMBER, ID_PRECOMPETENCIA NUMBER,
ID_ATLETA NUMBER, ID_ATLETA NUMBER,
PUNTAJE NUMBER, PUNTAJE NUMBER,
FECHA DATE, FECHA DATE,
CONSTRAINT PARTICIPAR_PRECOMPETENCIA_PK PRIMARY KEY (ID_PRECOMPETENCIA, ID_ATLETA, FECHA),
CONSTRAINT PARTICIPAR_PRECOMPETENCIA_PRECOMPETENCIA_FK FOREIGN KEY (ID_PRECOMPETENCIA) REFERENCES PRECOMPETENCIA(ID_PRECOMPETENCIA), CONSTRAINT PARTICIPAR_PRECOMPETENCIA_PRECOMPETENCIA_FK FOREIGN KEY (ID_PRECOMPETENCIA) REFERENCES PRECOMPETENCIA(ID_PRECOMPETENCIA),
CONSTRAINT PARTICIPAR_PRECOMPETENCIA_ATLETA_FK FOREIGN KEY (ID_ATLETA) REFERENCES ATLETA(ID_ATLETA) CONSTRAINT PARTICIPAR_PRECOMPETENCIA_ATLETA_FK FOREIGN KEY (ID_ATLETA) REFERENCES ATLETA(ID_ATLETA)
); );

View File

@ -11,9 +11,9 @@ BEGIN
SELECT MAX(ID_CIUDAD) INTO v_id_ciudad FROM CIUDAD; SELECT MAX(ID_CIUDAD) INTO v_id_ciudad FROM CIUDAD;
IF v_id_ciudad IS NULL THEN IF v_id_ciudad IS NULL THEN
: NEW.ID_CIUDAD := 1; :NEW.ID_CIUDAD := 1;
ELSE ELSE
: NEW.ID_CIUDAD := v_id_ciudad + 1; :NEW.ID_CIUDAD := v_id_ciudad + 1;
END IF; END IF;
END; END;