I have a table like this:
StudentID Student Name Birthdate Student Birthplace Gender Height Weight
--------- --------------- --------- ------------------ ------ ------ ------
83 Adam Stone 30-JUN-94 Towson, USA M 193 88
84 Stephanie Love 17-JUN-93 KL,Malaysia F 176 67
85 Rachel Kim 17-FEB-92 Seoul, South Korea F 179 56
How do i write a trigger to prevent any student under the age of 15 from being stored in the student's table?
You have a Date of Birth. So you need to determine that the DoB is at least sixteen years before today. There are various different ways of doing this; here's one using an interval literal.
This trigger also checks for updates, to prevent subsequent changes invalidating an student.
The trigger name
students_biur
is just a convention I use: the table name with a suffix indicating *B*efore *I*nsert *U*pdate for each *R*ow.RAISE_APPLICATION_ERROR is a standard procedure for throwing user-defined exceptions with a message. Find out more.
Oracle reserves the range -20999 to -20000 for user-defined errors; any other number may clash with a oracle-defined exception.