I have this question regarding delete triggers and how it affects data integrity.
So here goes: I have this trigger which deletes everything before I insert new rows.
CREATE OR REPLACE FUNCTION delete_records()
RETURNS TRIGGER AS $$
BEGIN
delete from "TABLE";
RETURN NEW;
END;
$$
LANGUAGE plpgsql;
CREATE TRIGGER delete_on_insert
BEFORE INSERT ON "TABLE"
FOR EACH ROW EXECUTE PROCEDURE delete_records();
My question is what happens while this function is executed? Is there any chance the table can return empty data between the delete and insert commands? Or does a trigger like this block this possibility somehow?