Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

392
Visualizações
MySQL si existe valores de actualización, de lo contrario, inserte

Estoy creando una aplicación que almacena la asistencia de los estudiantes.

Estoy creando la base de datos que almacenará esta asistencia y estoy atascado en la consulta mySQL.

Quiero que la consulta busque el 'nombre de la conferencia' y el 'id_usuario' (clave externa de otra base de datos) y, si existe, incremente la asistencia de los estudiantes a la conferencia (asistió ++ y total ++)

Hasta ahora tengo esto:

 INSERT INTO `attendance`(`attendance_id`, `module_code`, `lecture_name`, `attended`, `total`, `user_id`) VALUES ("null","test","TEST",1,1,1) ON DUPLICATE KEY UPDATE attended = attended+1,total = total+1

Esto insertará una nueva fila, pero para ON DUPLICATE, no hay forma de pasar la clave principal para verificar si hay un 'duplicado'

Me preguntaba si hay otra forma de hacer esto en MySQL que no sea CON CLAVE DUPLICADA, o si alguien puede ayudarme.

Aquí hay una captura de pantalla de la base de datos. Por ejemplo, vea que la 'Investigación de operaciones' se creó cuando debería aumentar los valores. Esto se debe a que no tengo forma de agregar la clave principal a la consulta SQL.

Agradecería cualquier ayuda para esto, gracias.

captura de pantalla de la base de datos

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

El uso de null entre comillas dobles es preocupante. Entonces, creo que deberías escribir la consulta como:

 INSERT INTO `attendance`(`module_code`, `lecture_name`, `attended`, `total`, `user_id`) VALUES ('test', 'TEST', 1, 1, 1) ON DUPLICATE KEY UPDATE attended = attended + 1, total = total + 1 ;

Para que esto funcione, parece que desea un índice único en (lecture_name, user_id) .

Su modelo de datos parece sospechoso porque la tabla repite el nombre de la lecture_name en varias filas. Me parece que le gustaría tener una tabla de lectures y usar lecture_id de conferencia en esta tabla.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda