Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

391
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!