Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

trigger

Estas en el tema de trigger en el foro de Oracle en Foros del Web. bueno vuelvo otra vez por aca a molestar con la base de datos de la biblioteca @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original CREATE TABLE alumnos ...
  #1 (permalink)  
Antiguo 04/11/2012, 11:55
Avatar de thomas_2417  
Fecha de Ingreso: noviembre-2012
Mensajes: 10
Antigüedad: 12 años
Puntos: 0
trigger

bueno vuelvo otra vez por aca a molestar con la base de datos de la biblioteca

Código SQL:
Ver original
  1. CREATE TABLE alumnos(
  2. cod_alumno INTEGER NOT NULL,
  3. nombre_alumno VARCHAR(20)NOT NULL,
  4. libros_prestados INTEGER,
  5. CONSTRAINT PK_alumn PRIMARY KEY (cod_alumno)
  6. );
  7.  
  8.  
  9. CREATE TABLE libros(
  10. cod_libro INTEGER NOT NULL,
  11. nombre VARCHAR(20)NOT NULL,
  12. estado VARCHAR(20) NOT NULL,
  13. CONSTRAINT PK_libros PRIMARY KEY (cod_libro)
  14. );
  15.  
  16. CREATE TABLE PRESTAMOS(
  17. codi_prestamo INTEGER NOT NULL,
  18. codi_libro INTEGER  NOT NULL UNIQUE,
  19. codi_alumno INTEGER NOT NULL,
  20. FECHA_PRESTAMO DATE DEFAULT SYSDATE,
  21. FECHA_ENTREGA DATE DEFAULT SYSDATE+3,
  22. FECHA_DEVUELTO DATE,
  23. CONSTRAINT PK_prestam PRIMARY KEY (codi_prestamo),
  24. CONSTRAINT fk_libro FOREIGN KEY (codi_libro) REFERENCES libros (cod_libro),
  25. CONSTRAINT fk_alum FOREIGN KEY (codi_alumno) REFERENCES alumnos (cod_alumno)
  26. );
En este caso hice 2 trigger uno para que me cambie el estado del libro de disponible a no disponible en el caso de que si es prestado el libro cambie el estado del libro a no disponible y cuando es devuelto cambie nuevamente a disponible... Ahora es el caso que no puedo prestar el libro 2 veces si no a sido devuelto y si a sido devuelto si se puede prestar nuevamente... No se que caso utilizar si un procedimiento o función y si puede me adjuntan el código de dicho respuesta...

Última edición por gnzsoloyo; 11/12/2012 a las 18:30 Razón: Código SQL sin etiquetar.
  #2 (permalink)  
Antiguo 11/12/2012, 18:16
 
Fecha de Ingreso: enero-2009
Mensajes: 32
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: trigger

Deberías crear un trigger BEFORE ROW on UPDATE en la tabla PRESTAMOS y controlar que si se está rellenando la fecha de actualización realice el update de la tabla LIBRO

Un saludo
__________________
Anotaciones de un programador

Etiquetas: funcion, trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:31.