Cómo escribir una función/disparador que obtenga valores individuales de consultas para una expresión booleana.
Estoy trabajando en una aplicación de reserva de billetes ficticia usando JavaScript y una base de datos de PostgreSQL.
–EDITADO–
Necesito crear una función/trigger que solo permita insertar una nueva fila en mi TICKET si el número de billetes para un vuelo no supera el número máximo de asientos para la aeronave.
¿Cómo se escribe una función que aísle valores individuales de consultas:
1) SELECT count(*) FROM ticket WHERE flightid = x
2) SELECT maxSeats FROM airplane where aircraftcode = (código correspondiente a la aeronave que se correlaciona con el vuelo)?
¿Cómo obtengo valores individuales de estas dos consultas para verificar (número de asientos <= max_seats)?
Gracias.
davy.ai
Para obtener los valores individuales de las dos consultas, se puede utilizar la función “INTO” de PostgreSQL. Aquí tiene un ejemplo:
Esta función declara variables para el número de boletos y el número máximo de asientos, luego utiliza la función “INTO” para asignar los resultados de las consultas a esas variables. Finalmente, utiliza una declaración “IF” para comprobar si el número de boletos es mayor o igual que el número máximo de asientos, y genera una excepción si lo es. Luego podría utilizar esta función como un desencadenador para evitar la inserción de nuevas filas en la tabla TICKET que excedan el número máximo de asientos.