Olá, estou com um pequeno problema.
Criei uma tabela horario no banco de dados (MYSQL) que contem horaInicio (‘07:00’ até ‘20:30’) e horaFinal (‘07:30’ até ‘21:00’).
Fora isso tenho outra tabela conforme abaixo:
CREATE TABLE agenda_reuniao(
id bigint auto_increment,
usuario varchar(255),
assunto varchar(255),
dataMesAno DATE,
horaInicio TIME,
horaFinal TIME,
sala varchar(255),
primary key(id)
);
Estou utilizando a seguinte QUERY que me retorna os horários disponíveis e eu mostro isso na tela no JAVA.
SELECT horarioInicio, horarioFinal FROM horario WHERE NOT EXISTS(
SELECT horaInicio, horaFinal FROM agenda_reuniao WHERE agenda_reuniao.sala = ‘Sala Serra’ AND
agenda_reuniao.dataMesAno = ‘2017-11-14’ AND horario.horarioInicio BETWEEN horaInicio AND
horaFinal AND horario.horarioFinal BETWEEN horaInicio AND horaFinal );
O problema que estou enfrentando é o seguinte, eu vou e crio uma nova reunião com as informações abaixo (tudo através do java):
INSERT INTO agenda_reuniao VALUES (null,‘vamonfardini’, ‘teste’, ‘2017-11-14’, ‘10:00’, ‘17:00’, ‘Sala Serra’ );
Até ai está tudo certo, então eu vou tentar criar uma outra reunião com as informações (tudo através do java):
INSERT INTO agenda_reuniao VALUES (null,‘vamonfardini’, ‘teste’, ‘2017-11-14’, ‘08:00’, ‘20:00’, ‘Sala Serra’ );
E ai que está meu problema, as duas reuniões estão gravadas para o mesmo dia, conflitando o horário sendo que uma é das 10:00 as 17:00 e a outra das 08:00 as 20:00.
Gostaria de alguma forma (no qual não consegui pensar) de coibir isso de acontecer através da QUERY que estou utilizando para me retornar os horários disponíveis.
Agradeço desde já e me desculpe se fui confuso.