por john_maal Lun Sep 05, 2016 7:29 pm
Si muchas gracias, mis dudas creo yo que son bastante puntuales.
Ahì viene una que me tiene toda la tarde trabajando:
tengo por ejemplo la relaciòn INSCRIPCIÒN(persona, concurso, año_inscripciòn, concursos_hechos)
--Suponiendo que como vinculo de integridad el numero de concursos hechos debe ser mìnimo 1.
digamos que yo quiero tomar todas las personas que tienen mìnimo 1 y màximo 2 concursos hechos, y entonces insertarlas nuevamente en la tabla pero incrementando el numero de concursos hechos y colocando la fecha actual.
Que quede claro que no quiero que los datos viejos sean eliminados, si la persona se ha inscrito en 1 concurso, al terminar la inserciòn debe aparecer 2 veces en la tabla.
yo voy a escribir la soluciòn que a mi se me ocurriò de manera semàntica, asì que seguramente estarà plagado de errores de sintaxis
INSERT INTO INSCRIPCIÒN AS I(
UPDATE (
SELECT* FROM INSCRIPCIÒN WHERE concursos_hechos <= 2)
SET I.año_inscripciòn =
I.concursos_hechos = concursos_hechos+1
)
Esa es la idea, una insert de una relaciòn creada a partir de una select y una update... La cosa no me funciona en el SQL por problemas de sintaxis... pero ¿es correcto?