Summary: In this tutorial, you’ll learn how to remove a trigger from a table within your database using the PostgreSQL DROP TRIGGER statement.
Overview of the PostgreSQL DROP TRIGGER Statement #
The DROP TRIGGER statement removes a trigger from a specific table within your database.
Here’s the syntax of the DROP TRIGGER statement:
DROP TRIGGER [IF EXISTS] trigger_name
ON table_name
[CASCADE | RESTRICT];Code language: PostgreSQL SQL dialect and PL/pgSQL (pgsql)In this syntax:
- First, specify the name of the trigger after the
DROP TRIGGERkeywords. - Second, use the
IF EXISTSoption to prevent an error from removing a trigger that does not exist in the database. - Third, provide the name of the table to which the trigger belongs in the
ONclause. - Finally, use the
CASCADEoption to drop the dependent objects of the trigger automatically. TheDROP TRIGGERstatement uses theRESTRICToption by default, which rejects the removal if the trigger has any dependent objects.
PostgreSQL DROP TRIGGER Example #
First, create a new trigger function called prevent_negative_stock that ensures the stock level in the inventories table is never negative:
CREATE OR REPLACE FUNCTION prevent_negative_stock()
RETURNS TRIGGER
AS
$$
BEGIN
IF (TG_OP = 'UPDATE' AND NEW.quantity < 0) THEN
RAISE EXCEPTION 'Stock level cannot be negative in warehouse % for product %',
NEW.warehouse_id, NEW.product_id;
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;Code language: PostgreSQL SQL dialect and PL/pgSQL (pgsql)Second, create a trigger called inventory_stock_check for the inventories table, which executes the prevent_negative_stock() function before updating data in the inventories table:
CREATE TRIGGER inventory_stock_check
BEFORE UPDATE ON inventories
FOR EACH ROW
EXECUTE FUNCTION prevent_negative_stock ();Code language: PostgreSQL SQL dialect and PL/pgSQL (pgsql)Third, remove the inventory_stock_check trigger:
DROP TRIGGER IF EXISTS inventory_stock_check;Code language: PostgreSQL SQL dialect and PL/pgSQL (pgsql)Summary #
- Use the
DROP TRIGGERstatement to effectively remove a trigger from your database.
Quiz #
Was this tutorial helpful ?