Java - mysql primary key

 
Vista:
Imágen de perfil de patricio
Val: 4
Ha aumentado su posición en 7 puestos en Java (en relación al último mes)
Gráfica de Java

mysql primary key

Publicado por patricio (3 intervenciones) el 20/04/2018 14:19:26
buenos dias colega,
tengo dudas de unas tablas al ingreso de fecha,
les comento tengo campos id con fechas como primary key pero al ingresar dos fechas iguales pero con
disntintos id no me inserta.

CREATE TABLE MEDIDORES(
ID_MEDIDOR INT AUTO_INCREMENT PRIMARY KEY,
ID_BARRA INT,
NOMBRE_MEDIDOR VARCHAR(25),
TIPO_MEDIDOR_C_G_R VARCHAR(25),
CONSTRAINT FK_MEDIDORES_BARRAS FOREIGN KEY (ID_BARRA)
REFERENCES BARRAS (ID_BARRA)
);

CREATE TABLE MEDIDAS(
ID_MEDIDOR INT ,
FECHA_Y_HORA DATETIME,
MEDIDA_MEDIDOR_KWH FLOAT,
FECHA_Y_HORA_ACTUALIZADO DATETIME DEFAULT CURRENT_TIMESTAMP,
FLAG_DEFINITIVO BIT DEFAULT 0,
PRIMARY KEY (ID_MEDIDOR, FECHA_Y_HORA),
CONSTRAINT FK_MEDIDAS_MEDIDORES FOREIGN KEY (ID_MEDIDOR)
REFERENCES MEDIDORES (ID_MEDIDOR)
);
CREATE TABLE PRECIOS(
ID_CONTRATO INT,
ID_MEDIDOR INT,
FECHA_Y_HORA DATETIME,
PRECIO_CLP_KWH FLOAT,
PRECIO_USD_MWH FLOAT,
FACTOR_PRORRATA FLOAT,
FECHA_Y_HORA_ACTUALIZADO DATETIME DEFAULT CURRENT_TIMESTAMP,
FLAG_MARGEN_SOBRE_CMG BIT DEFAULT 0,
FLAG_DEFINITIVO BIT DEFAULT 0,
PRIMARY KEY (FECHA_Y_HORA),
CONSTRAINT FK_PRECIOS_CONTRATOS FOREIGN KEY (ID_CONTRATO)
REFERENCES CONTRATOS (ID_CONTRATO),
CONSTRAINT FK_PRECIOS_MEDIDORES FOREIGN KEY (ID_MEDIDOR)
REFERENCES MEDIDORES (ID_MEDIDOR)
);

al hacer este select no me muestra, me dice que hay duplicados, pero son todos distinto a mi criterio

SELECT PRECIOS.ID_MEDIDOR, PRECIOS.ID_CONTRATO, PRECIOS.FECHA_Y_HORA, (PRECIOS.FACTOR_PRORRATA*MEDIDAS.MEDIDA_MEDIDOR_KWH)
FROM PRECIOS, MEDIDAS
WHERE PRECIOS.FECHA_Y_HORA = MEDIDAS.FECHA_Y_HORA;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kingk
Val: 247
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

mysql primary key

Publicado por kingk (108 intervenciones) el 20/04/2018 22:52:39
Hola, la razón por la que no puedes insertar fechas iguales es justamente por que están definidas como claves primarias, las claves primarias no se pueden repetir. Por eso debes definir exactamente que campos son únicos de cada entidad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de patricio
Val: 4
Ha aumentado su posición en 7 puestos en Java (en relación al último mes)
Gráfica de Java

mysql primary key

Publicado por patricio (3 intervenciones) el 23/04/2018 02:44:39
hola, si son primary key pero luego altere la tabla para primary key (id_contrato, id_medidor, fecha_y_hora)

y asi todo se me repite la fecha al hacer una consulta, o al ingresar con id distinto no me deja insertar..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar