In the case of SQL Server, the desired logic can be implemented by defining a trigger INSTEAD OF. For example, for a Mysql server, you need to define a trigger BEFORE.
The UPDATE . Trigger Example (SQL Server)
CREATE TRIGGER ON [grades] INSTEAD INSERT
AS
BEGIN
IF NOT EXISTS(
SELECT 1 FROM [person] WHERE personid = inserted.person_id AND person.type = 'student'
)
BEGIN
RAISERROR ('Invalid person type', 10, 1);
END;
INSERT INTO [grades] SELECT field1, field2, ... FROM inserted;
END
GO
mysql CREATE TRIGGER ... BEFORE INSERT. , mysql RAISEERROR, , . INSERT INTO not_existing_table(id) VALUES(1,2) .